Entre estos dos:¿Por qué debería usar una propiedad implementada automáticamente en lugar de un campo?
Con propiedad:
class WithProperty
{
public string MyString {get; set;}
}
con el campo:
class WithField
{
public string MyString;
}
Al parecer, se supone que debo escoger la primera. ¿Por qué?
He escuchado el argumento de que el punto aquí es permitir cambios en la interfaz, pero si tengo el segundo y lo cambio al primero, ningún otro código debería tener que cambiar alguna vez. Cuando se recompila todo lo que va a apuntar a la propiedad en su lugar.
¿Falta algo importante aquí?
podría estar relacionada: http://stackoverflow.com/questions/863182/changing-fields-to -property-is-a-breaking-change-under-what-scenarios – mmcdole
Jon Skeet tiene un buen artículo sobre este tema: http://csharpindepth.com/Articles/Chapter8/PropertiesMatter.aspx – Odrade