What is the difference (i.e. advantage/disadvantage) between the 2 properties that I created? Both seem to be correct, but what is the best way (practice) of declaring properties in a class?
[Serializable]
public class MySample
{
public string String1 = string.Empty;
private string _string2 = string.Empty;
public string String2
{
get { return _string2 ; }
set { _string2 = value; }
}
}
Only
String2is a property, the other is a public field.See Difference between Property and Field in C# .NET 3.5+ for detail but if in doubt you should use properties rather than public fields.
If that seems like too much typing then you will be pleased to know that the following is equivalent
See auto-properties