propiedades example automatic c# properties

example - propiedades en c#



Pregunta de propiedad de taquigrafía de C# (7)

En C # 3.0 y posteriores, las propiedades implementadas automáticamente hacen que la declaración de propiedad sea ​​más concisa cuando no se requiere una lógica adicional en los descriptores de acceso a la propiedad. También permiten que el código del cliente cree objetos Cuando declara una propiedad como se muestra en el siguiente ejemplo, el compilador crea un campo de respaldo privado y anónimo al que solo se puede acceder a través de los accesadores get y set de la propiedad.

// Auto-Impl Properties for trivial get and set public double TotalPurchases { get; set; } public string Name { get; set; } public int CustomerID { get; set; }

Así que aquí hay un poco de sintaxis que nunca había visto antes, ¿alguien me puede decir lo que esto significa? No estoy seguro si esto se supone que es una abreviatura de una declaración de propiedad abstracta o algo o qué.

public Class1 myVar { get; set; }

Por lo que vale, Class1 es una clase abstracta.


Es una abreviatura de una propiedad que no hace nada más que almacenar el valor en un campo. Entonces sería equivalente a:

private Class1 _myVar; public Class1 myVar { get{ return _myVar; } set{ _myVar = value;} }

Es simplemente una propiedad simple que podrías reemplazar con una evaluación más compleja en un momento posterior sin cambiar la interfaz.


Esta es la sintaxis para permitir que el compilador cree un campo (oculto) para usted.

También es muy útil:

public Class1 myVar{ get; private set; }


Estas son propiedades Auto-Implementadas. Te permiten hacer que tu código sea más conciso. Puedes leer más sobre ellos aquí:

Implementación automática

También puede hacer que los accesadores tengan diferentes niveles de acceso:

public int MyVar {get; conjunto privado; }

Esto le permite exponer la propiedad externa a la clase y aún así configurarla internamente.


Getters y setters automáticos.


Puede parecer una propiedad abstracta o una propiedad de una interfaz, pero está lejos de serlo. 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.

Esta es la forma estándar de crear una propiedad:

String foo; public String Foo { get { return this.foo } set { this.foo = value; } }

Ahora, esto requiere un poco de tipeo y, como los desarrolladores son flojos hasta el núcleo, a veces estamos tentados a crear campos públicos solo para ahorrar algo de tiempo.

Ahora con el compilador C # 3 podemos hacer esto:

public String Foo { get; set; }

Si bien esto parece un poco extraño, considere 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; } }

Entonces, aunque la sintaxis se ve un poco extraña, todavía estás creando una propiedad exactamente de la manera en que estás acostumbrado.


Se llama propiedad automática o implementada automáticamente , y no es abstracta. Puede usar esa propiedad tal como es. El compilador creará una tienda de respaldo detrás de escena.

Es muy parecido a usar un campo en lugar de una propiedad, pero obtienes semántica de propiedades y puedes usarlo para cosas como enlaces de datos que requieren propiedades.