• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#方法名前的方括号是干嘛用的呀?

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

 MSDN解答:

Attribute 类将预定义的系统信息或用户定义的自定义信息与目标元素相关联。目标元素可以是程序集、类、构造函数、委托、枚举、事件、字段、接口、方法、可移植可执行文件模块、参数、属性 (Property)、返回值、结构或其他属性 (Attribute)。

属性所提供的信息也称为元数据。元数据可由应用程序在运行时进行检查以控制程序处理数据的方式,也可以由外部工具在运行前检查以控制应用程序处理或维护自身的方式。例如,.NET Framework 预定义属性类型并使用属性类型控制运行时行为,某些编程语言使用属性类型表示 .NET Framework 公共类型系统不直接支持的语言功能。

所有属性类型都直接或间接地从 Attribute 类派生。属性可应用于任何目标元素;多个属性可应用于同一目标元素;并且属性可由从目标元素派生的元素继承。使用 AttributeTargets 类可以指定属性所应用到的目标元素。

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

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C/C++输出格式控制符发布时间:2022-07-13
下一篇:
c#多线程排队队列实现的源码发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap