La diferencia principal es que si más adelante necesita agregar la lógica en su getter o setter, y otros archivos DLL ya se han compilado con la suya, se puede cambiar fácilmente
public string Name { get; set; }
en
public string Name { get{/*special code*/} set{/*special code*/} }
y no será un cambio decisivo publicar su nueva DLL y no se recompilarán otras DLL.
Mientras que si ha cambiado
public string Name;
en
public string Name { get{/*special code*/} set{/*special code*/} }
entonces usted tendrá que asegurarse de que cualquier DLL que utilizan la suya se vuelven a compilar, ya que cambian el acceso a un campo en acceder a una propiedad.
Esto es obviamente un problema mayor cuando se está DLL a otros programadores de envío (como un proyecto de código abierto o como un proveedor de componentes, por ejemplo) que si usted está construyendo una aplicación para su propia auto/empleador
Es posible que desee leer esto: http://stackoverflow.com/questions/1019571/why-do-we-use-net-properties-instead-of-plain-old-get-set-functions –
http: //stackoverflow.com/questions/1272521/propertywith-no-extra-processing-vs-public-field – Groo
es una característica de AC# 3.0 (.NET 3.5) para ser exactos –