Vi algo como lo siguiente en alguna parte y me preguntaba qué significaba. Sé que son captadores y definidores, pero quiero saber por qué el tipo de cadena se define así. Gracias por ayudarme.
public string Type { get; set; }
c#
getter-setter
maya
fuente
fuente
"Type"
, cuyo tipo .NET esSystem.string
. No hay nada más que eso.Respuestas:
Esas son propiedades implementadas automáticamente (propiedades automáticas para abreviar).
El compilador generará automáticamente el equivalente de la siguiente implementación simple:
fuente
public int b { get { return b * 2; } }
ningún segundo campo necesario. Pero creo que cuando tienes al armador con cuerpo, necesitas el segundo campo. Y este muestra a un setter con cuerpo. Aunque hace lo mismo que la línea del interrogador.=>
sintaxis y no tiene una palabra clave de retorno. Aunque eso no era lo que tenía en mente. Tenía en mente que el segundo campo era innecesario, aunque desde entonces he descubierto que el segundo campo es necesario a veces. En el ejemplo aquí, el segundo campo no es necesario (porque un establecedor predeterminado sin cuerpo haría esto), pero el respondedor lo estaba poniendo en (cuerpo del establecedor y segundo campo), para explicarle al interrogador cuál es su línea sin el segundo campo estaba haciendo.Esa es una propiedad automática y es la notación abreviada para esto:
fuente
<Type>k__BackingField
con una reflexión.En C # 6:
Ahora es posible declarar las propiedades automáticas como un campo:
Propiedades automáticas de solo lectura
fuente
No es diferente a hacer
fuente
Esto significa que el compilador define un campo de respaldo en tiempo de ejecución. Esta es la sintaxis de las propiedades implementadas automáticamente.
Más información: propiedades implementadas automáticamente
fuente
Es una propiedad respaldada automáticamente, básicamente equivalente a
fuente
Se denominan propiedades automáticas.
http://msdn.microsoft.com/en-us/library/bb384054.aspx
Funcionalmente (y en términos del IL compilado), son las mismas que las propiedades con campos de respaldo.
fuente
Sé que esta es una pregunta antigua, pero con el lanzamiento de C # 6, ahora puede hacer algo como esto para las propiedades privadas.
fuente
También puede usar una expresión lambda
fuente