>>>>>>MyName
>>>>>>myName
>>>>>>_myName
>>>>>>this.MyName
>>>>>>
>>>>>>are all valid names but the casing tells you the scope of the variable.
>>>>>
>>>>>Please go on. I sincerely am in learning mode here. What is the scope of each of those?
>>>>
>>>>Here's a sample, I wouldn't do this as a rule, but it illustrates the naming by case.
>>>>
>>>>Field variables i.e. _myName are global to the class in which they are declared but since private are not available outside of class
>>>>Properties (public) are global to the class in which they are declared.and are available to any thing which consumes this class
>>>>Parameters use camel case and are limited in scope to the method
>>>>
>>>>
>>>>
>>>> public class MyClass
>>>> {
>>>> private string _myName;
>>>> public string MyName { get; set; }
>>>>
>>>> public MyClass(string myName)
>>>> {
>>>> _myName = myName;
>>>>
>>>> this.GetNewName(myName);
>>>> }
>>>>
>>>> private void GetNewName(string myName)
>>>> {
>>>> this.MyName = _myName + ":" + myName;
>>>> }
>>>> }
>>>>
>>>
>>>This is exactly how I do it today, after playing around with different guidelines that last several years.
>>>
>>>Other picky points with me: when people do explicity scope _myName to private
>>>Not using Auto-Implemented Properties
>>>
>>>Question: I've always been confused about how the compiler optimizes string concatonation. Should you be using String.Format or String.Concat instead of the way you're doing it? Or will the compiler optimize it?
>>
>>
>>For short strings, as in the demo, i don't think it matters.... but for the most part I use stringbuilder to concat long strings of data.....
>
>Another newbie question -- isn't StringBuilder a bazillion times faster than String?
AFAIK, there's no point in using a StringBuilder for something like this:
string s = "Tom" + "Dick"+"Harry"+"AsManyMoreAsYouLike"
since you are only assigning to a string once. But, since strings are immutable, if you do this:
string s = "Tom";
s += "Dick";
s += "Harry";
then you are, in effect, creating a new 's' and discarding the old one with every addition. In that situation using a StingBuilder comes into its own....