Puede parecer una propiedad abstracta o una propiedad de una interfaz, pero está lejos de estarlo. Con el fin de alentar a los desarrolladores a usar propiedades (ya que son una mejor práctica por muchas razones) Microsoft decidió incluir esta característica en C# 3 para permitirte declarar las propiedades con mayor facilidad.
Aquí es la manera estándar de crear una propiedad:
String foo;
public String Foo
{
get { return this.foo }
set { this.foo = value; }
}
Ahora bien, esto requiere un poco de escribir y ya que los desarrolladores son perezosos para el núcleo veces tenemos la tentación de crear campos públicos sólo para ahorrar algo de tiempo .
Ahora, con el compilador de C# 3 podemos hacer esto:
public String Foo { get; set; }
Si bien esto parece un poco extraño, tenga en cuenta el trabajo que el compilador está haciendo en su nombre. El código anterior se compila a esto:
[CompilerGenerated]
private string <Foo>k__BackingField;
public string Foo
{
[CompilerGenerated]
get
{
return this.<Foo>k__BackingField;
}
[CompilerGenerated]
set
{
this.<Foo>k__BackingField = value;
}
}
Así que, aunque la sintaxis es un poco extraño que se sigue creando una propiedad exactamente la forma en que está acostumbrado.
Te votaré por tener una explicación más completa, pero estoy listo para el día. – TheTXI