我们经常会看到一些C#代码的方法名前有一个方括号,里面有一行文字,如:1、序列化:
[Serializable]
public void 方法名(){...}2、WebServices方法:
[WebMethod]
public void 方法名(){...}3、Ajax(AjaxPro)方法:
[AjaxPro.AjaxMethod]
public void 方法名(){...}4、其他还有很多,如Duwamish7里的:
[Browsable(false)]
public void 方法名(){...}
请问这些方括号干嘛用的呀?编译器怎样处理它们的呀?如何应用?

解决方案 »

  1.   

    这是一个特性类
    http://blog.csdn.net/ojekleen/archive/2007/09/18/1789673.aspx
      

  2.   

    特性,用于程序集、类、方法、属性、事件、字段、参数、返回值等的自描述
    编译器将特性像狗皮膏药一样贴在目标上,以便于其他程序通过反射查找这些信息
    (有的特性是Clr直接处理的,比如Serializable、MethodImpl等)
      

  3.   

    就是用来描述该方法所具有的属性,这些类都是通过Atrrbuite类的派生类,
    有些Class也会被这样的描述,这样在反射的时候就可以区分别的类了。