Possible Duplicate:
What is the difference between a field and a property in C#
Can someone explain the diffrence if any between these two properties?
public string City { get; set; } public string City; Possible Duplicate:
What is the difference between a field and a property in C#
Can someone explain the diffrence if any between these two properties?
public string City { get; set; } public string City; The first one is an actual property. The second one is just a field.
Generally speaking, fields should be kept private and are what store actual data. Properties don't actually store any data, but they point to fields. In the case of the auto-property above, it will auto-generate a hidden field like _city behind the scenes to hold the data.
Hope this helps!
First one is CLR property, while the second is just public field (not a property).
In WPF and Silverlight, binding doesn't work with public fields, it works only with public properties. That is one major difference in my opinion:
//<!--Assume Field is a public field, and Property is a public property--> <TextBlock Text="{Binding Field}"/> <TextBlock Text="{Binding Property}"/> First one wouldn't work but the second one would work.
as mellamokb said. the first type is Property,the compiler will auto-generate access function and private field like:
private String _city; public String City(){ return _city ;} ..... use Properties,you can control the access of _city,for example"
public String City(){ doXxxFunction(); return _city ; } so,you should always use the property,and make sure all field is private.