日期:2014-05-18  浏览次数:21417 次

C#方法名前的方括号是干嘛用的呀?
我们经常会看到一些C#代码的方法名前有一个方括号,里面有一行文字,如:

1、序列化:
[Serializable]
public void 方法名(){...}

2、WebServices方法:
[WebMethod]
public void 方法名(){...}

3、Ajax(AjaxPro)方法:
[AjaxPro.AjaxMethod]
public void 方法名(){...}

4、其他还有很多,如Duwamish7里的:
[Browsable(false)]
public void 方法名(){...}


请问这些方括号干嘛用的呀?编译器怎样处理它们的呀?如何应用?


------解决方案--------------------
这是一个特性类
http://blog.csdn.net/ojekleen/archive/2007/09/18/1789673.aspx
------解决方案--------------------
特性,用于程序集、类、方法、属性、事件、字段、参数、返回值等的自描述
编译器将特性像狗皮膏药一样贴在目标上,以便于其他程序通过反射查找这些信息
(有的特性是Clr直接处理的,比如Serializable、MethodImpl等)
------解决方案--------------------
就是用来描述该方法所具有的属性,这些类都是通过Atrrbuite类的派生类,
有些Class也会被这样的描述,这样在反射的时候就可以区分别的类了。