|
To make it clear (to the reader not to the compiler) that you want it public. Leaving it out results in the class being public by default anyway, so it doesn't make much difference.
I'm of the opinion that there should be no default access modifiers, that the developer should always specify his intent by including one. (Same with virtual/sealed as well.)
"Things would be different if I ran the zoo." -- Dr. Seuss
|
|
|
|
|
Sorry but the default is internal!
From MSDN:
Classes and structs that are declared directly within a namespace (in other words, they are not nested within other classes or structs) can be either public or internal. Internal is the default if no access modifier is specified.
Greetings
Covean
|
|
|
|
|
I sit corrected; but that's simply more reason not to have a default.
|
|
|
|
|
There you are completely right. I also always use access modifier. At least this looks better in code.
Greetings
Covean
|
|
|
|
|
If you remove the public in front of your class def it becomes internal.
internal:
The type or member can be accessed by any code in the same assembly, but not from another assembly.
Greetings
Covean
|
|
|
|
|
You use Public because it helps in code reusability and extensibility. If ur class is private it becomes inaccessible same for any private members or methods. they can only be used by the objects of that class. U might want to extend it's functionality in future by inheriting. Hence it's a good practise to make your class public.
|
|
|
|
|
|
Only grant as much access as required. For many classes and structs that will be public, but a developer still needs to consider each case carefully.
|
|
|
|
|
HELLO,
MY STRING IS DD/MON/YYYY.I WANT TO SPLIT THIS STRING INTO INDIVIDUAL PART LIKE DD,MMM,AND YYYY.AND FINALY BIND THESE INDIVIDUAL VALUE INTO 3 COMBOBOXEX LIKE DAY,MONTH AND YEAR.I HAVE DONE THE CODE BUT ITS WORKING FOR SOME VALUE AND NOT WORKING FOR OTHER.
MY CODE: string s = rows[6].ToString();//DOB LIKE 15/JULY/1988
int i = s.IndexOf("/");
t = s.Substring(0, i);
t1 = s.Substring(0);
t2 = s.Substring(i + 1, i + 2);
int i1 = s.IndexOf("/");
t3 = s.Substring(i1 + 5);
comboBox2.Text = t.ToString();15
comboBox3.Text = t2.ToString();JULY
comboBox4.Text = t3.ToString();1988
|
|
|
|
|
Have a look at DateTime::Parse and DateTime::ParseExact this should solve your problem.
[edit] I don't know why but thanks to this member who rated 1 for this. I think
its really the better solution to parse a date time at your own or splitting the string.
[/edit]
Greetings
Covean
modified on Friday, November 13, 2009 7:48 AM
|
|
|
|
|
a little edit
DateTime.Parse and DateTime.ParseExact
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Yes are right but I think he know what he should do now. ^^
Greetings
Covean
|
|
|
|
|
The date should be stored in the database as a datetime. If so, don't make it a string and then parse it back to a datetime again:
System.DateTime dob = (System.DateTime) rows[6] ;
comboBox2.Text = dob.ToString ( "dd" ) ;
comboBox3.Text = dob.ToString ( "MMMM" ) ;
comboBox4.Text = dob.ToString ( "yyyy" ) ;
modified on Thursday, November 12, 2009 10:58 AM
|
|
|
|
|
Why can't you just use Split?
It's difficult to know why it's not working unless we can see which values work and which don't.
|
|
|
|
|
sudhir behera wrote: string s = rows[6].ToString();//DOB LIKE 15/JULY/1988
Assuming the contents of rows[6] is a DateTime structure then you can start with that value and extract the day, month and year strings directly by its methods. Take a look at the MSDN documentation here[^] for all the options.
|
|
|
|
|
Use Split to split the date by /,- or whichever seperator u use.
Then asign the values of each item in array to ur combobox.
simplest way and have always worked for me.
|
|
|
|
|
FEMDEV wrote: simplest way
Maybe not the simplest though.
FEMDEV wrote: always worked for me
Sure, it works, but there is very likely a better way.
|
|
|
|
|
I wrote a code that is using BackgroundWorker and updating ProgressBar on ProgressChanged. But when I ran it the ProgressBar shown some progress then app got hang for long time. So I thought to check the error and finally reached on a most annoying freaky error. That is the calculation is wrong. And after all I wrote a line for debugging
System.Diagnostics.Debug.WriteLine(bytesReaded + " * 100 / " + totalBytesToRead + " = " + ((bytesReaded * 100) / totalBytesToRead));
and the output will blow the mind of
a snippet
36257792 * 100 / 54444964 = -12
36274176 * 100 / 54444964 = -12
36290560 * 100 / 54444964 = -12
36306944 * 100 / 54444964 = -12
36323328 * 100 / 54444964 = -12
36339712 * 100 / 54444964 = -12
36356096 * 100 / 54444964 = -12
36372480 * 100 / 54444964 = -12
36388864 * 100 / 54444964 = -12
36405248 * 100 / 54444964 = -12
36421632 * 100 / 54444964 = -11
36438016 * 100 / 54444964 = -11
36454400 * 100 / 54444964 = -11
36470784 * 100 / 54444964 = -11
36487168 * 100 / 54444964 = -11
I have exactly same code line with ListView and it works good. But this one aint...any idea ?
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
What is the datatype of the variables used? Try using a double, this may solve your problem...
|
|
|
|
|
both are type of int .
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Ah, you see.. int cannot contain decimals... all the devisions result (rounded) in -12.. If you change the data types to double (or decimal if you like) the problem should be solved...
|
|
|
|
|
okay, I compared the other code with this one and found I was using long in there and I changed this to long as well and it working nice
System.Diagnostics.Debug.WriteLine(bytesReaded + " * 100 / " + totalBytesToRead + " = " + (((long)bytesReaded * 100) / (long)totalBytesToRead));
but why ?? whats wrong with int
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
You could still overflow the longs someday.
|
|
|
|
|
Probably better to do the division and then the multiplication.
Edit: Yeah, that won't work with ints.
modified on Thursday, November 12, 2009 11:34 PM
|
|
|
|
|
you mean
(bytesReaded / totalBytesToRead) * 100
??
well, I'm not sure it will work a bit accurate...
>> (50 / 100) * 100
>> 0 * 100
>> 0
or
>> (50 * 100) / 100
>> 5000 / 100
>> 50
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|