2011-08-26 12 views
5

Soy un novato de C#. Vimos este pedazo de código en un código abierto¿Tiene esta característica C# un nombre y qué hace?

public class Staff : BusinessObjectBase 
{ 

    /// <summary> 
    /// Column: StaffID(Identity)(Primary Key), Allow DBNull=False 
    /// </summary> 
    [DataMap("StaffID", IsIdentity=true, IsReadOnly=true, IsKey=true)] 
    public System.Nullable<System.Int32> StaffID { get; set; } 

    /// <summary> 
    /// Column: TeamID, Allow DBNull=True 
    /// </summary> 
    [DataMap("TeamID", AllowDBNull=true)] 
    public System.Nullable<System.Int32> TeamID { get; set; } 

la línea de salida con corchetes abiertos, ¿qué están haciendo? referencia a los atributos del objeto padre? Si es así, ¿por qué son neccessry? ¿Hay un nombre de este estilo de codificación? ¡Gracias!

+2

Esos son los atributos. –

+1

posible duplicado de [.NET: ¿Qué son los atributos?] (Http://stackoverflow.com/questions/20346/net-what-are-attributes) –

Respuesta

4

Se llaman atributos, consulte MSDN.

4

leyó todo acerca de C# Attributes. Básicamente son instancias de clases que se unen a otras propiedades/métodos/clases/elementos de código. En este caso, en pocas palabras, definió un nuevo campo llamado StaffID de tipo System.Nullable<...> que tiene un objeto DataMap adjunto.

10

Todo esto se enmarca en un concepto conocido como metaprogramación. Hay un libro llamado Metraprogramming en .NET (Manning). Básicamente anota su código con datos que luego pueden ser interpretados en tiempo de ejecución por algún otro código a través de la reflexión. Esto también es popular en Java y Ruby. Lo verá en ASP.NET MVC, WCF y mucho más. También introduce otra práctica de programación conocida como Programación Declarativa. Usted dice "lo que quiere hacer" y deja que otra cosa determine "cómo". Es realmente grande en lenguajes de programación funcionales y simplemente programación en general para el caso. Vea esta publicación sobre cómo analizar los atributos. How do I GetCustomAttributes?

+2

Esta es la respuesta correcta de la OMI. –

Cuestiones relacionadas