我们经常会看到一些C#代码的方法名前有一个方括号,里面有一行文字,如:1、序列化:
[Serializable]
public void 方法名(){...}2、WebServices方法:
[WebMethod]
public void 方法名(){...}3、Ajax(AjaxPro)方法:
[AjaxPro.AjaxMethod]
public void 方法名(){...}4、其他还有很多,如Duwamish7里的:
[Browsable(false)]
public void 方法名(){...}
请问这些方括号干嘛用的呀?编译器怎样处理它们的呀?如何应用?
[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等)
有些Class也会被这样的描述,这样在反射的时候就可以区分别的类了。