2012-02-02 12 views
13

Sigo viendo la siguiente sintaxis cuando se mira en código C# (utilizando .NET 4.0 framework):corchete sintaxis anterior Declaración de bienes

[XmlIgnore, Bindable(false)] 
    public virtual FieldBase Field {get;set;} 

¿Cuál es el propósito de los corchetes por encima de la cabecera de la propiedad?

+0

¿por qué? sin justificación – user559142

Respuesta

18

Estos son attributes, se pueden aplicar a los elementos de su base de código y, al hacerlo, aplica metadatos a esa cosa, como las declaraciones descriptivas. Estas cosas pueden tener múltiples atributos. Hay muchos atributos 'integrados' expuestos por .NET framework; sin embargo, puede definir los propios.

Los tipos que son atributos se definen realmente con un nombre completamente calificado de SuchAThingAttribute, mientras que al aplicarse solo necesita especificar el nombre menos Attribute que se convierte en SuchAThing. Y deben derivar de System.Attribute (al menos para ser compatible).

Un atributo puede tener "configuraciones", es decir, puede especificar (al escribir las suyas) a qué tipos de elementos se aplica el atributo y si un elemento puede tener más de uno de este tipo de atributo o no , y así.

Los metadatos del atributo se pueden obtener más tarde utilizando los métodos similares a Reflection y GetCustomAttribute. Los enlaces here y here muestran ejemplos de cómo hacerlo.

4

Lo que estás viendo es un attribute. El corchete es la sintaxis requerida para especificar la aplicación de un atributo a un miembro dado, en este caso un acceso de propiedad, pero los atributos también se pueden aplicar a las clases, etc.

Cuestiones relacionadas