Nota: Esto se publicó cuando comenzaba C #. Con el conocimiento de 2014, realmente puedo decir que las propiedades automáticas se encuentran entre las mejores cosas que le han pasado al lenguaje C #.
Estoy acostumbrado a crear mis propiedades en C # usando un campo privado y un campo público:
private string title;
public string Title
{
get { return title; }
set { title = value; }
}
Ahora, con .NET 3.0, tenemos propiedades automáticas:
public string Title { get; set; }
Sé que esto es más una pregunta filosófica / subjetiva, pero ¿hay alguna razón para usar estas propiedades automáticas, excepto por guardar cinco líneas de código para cada campo? Mi queja personal es que esas propiedades me ocultan cosas, y no soy un gran fanático de la magia negra.
De hecho, el campo privado oculto ni siquiera aparece en el depurador, lo cual está bien dado el hecho de que las funciones get / set no hacen nada. Pero cuando quiero implementar algo de lógica getter / setter, tengo que usar el par privado / público de todos modos.
Veo el beneficio de que guardo mucho código (uno frente a seis líneas) sin perder la capacidad de cambiar la lógica del captador / definidor más tarde, pero de nuevo ya puedo hacerlo simplemente declarando un campo público "Título de cadena pública" sin la necesidad de {get; conjunto; } bloque, por lo tanto, incluso guardando más código.
Entonces, ¿qué me estoy perdiendo aquí? ¿Por qué alguien querría usar propiedades automáticas?