2012-02-02 75 views
13

我一直看到下面的语法看C#代码时(使用.NET 4.0框架):括号以上语法财产申报

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

什么是方括号中的财产头以上的目的是什么?

+0

why?没有理由。 – user559142 2012-02-02 14:11:39

回答

18

这些是attributes,它们可以应用到您的代码库的元素,并在这样做的元数据应用于该事物 - 如描述性声明。这些东西可以有多个属性。 .NET框架中有一些“内置”属性公开,但您可以定义自己的属性。

作为属性的类型实际上是用SuchAThingAttribute的完全限定名称定义的,而在应用时,您只需指定名称减去AttributeSuchAThing。他们必须从System.Attribute(至少要符合)派生。

属性可以有'设置',也就是说,您可以指定(在编写自己的时候)属性适用的元素类型,以及元素是否可以具有多于一种此类属性, 等等。

该属性的元数据稍后可以使用ReflectionGetCustomAttribute类似的方法获得。链接herehere显示了这样做的例子。

4

你在看什么是attribute。方括号是指定将属性应用于给定成员所需的语法,在这种情况下是属性访问器,但属性也可以应用于类等。