前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#中的特性(Attribute)

C#中的特性(Attribute)

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-25 15:09:43
9930
发布2019-01-25 15:09:43
举报
文章被收录于专栏:给永远比拿愉快

个人感觉C#中的特性(Attribute)和Java中的注解(Annotation)的使用有些相似,但是有有些区别。

微软MSDN上对特性的解释如下:特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集、类型、方法、属性等)相关联。特性与程序实体关联后,即可在运行时使用名为“反射”的技术查询特性。

最常见的特性如表示可序列化:

代码语言:javascript
复制
[System.Serializable]
public class SampleClass
{
    // Objects of this type can be serialized.
}

下面是MSDN中对特性用途的描述:

  • 在 Web 服务中,使用 WebMethod 特性来标记方法,以指示该方法应该可通过 SOAP 协议进行调用。 有关更多信息,请参见 WebMethodAttribute
  • 描述当与本机代码进行交互操作时如何封送方法参数。有关更多信息,请参见 MarshalAsAttribute
  • 描述类、方法和接口的 COM 属性。
  • 使用 DllImportAttribute 类调用非托管代码。
  • 在标题、版本、说明或商标方面描述您的程序集。
  • 描述要持久性序列化类的哪些成员。
  • 描述如何映射类成员和 XML 节点以便进行 XML 序列化。
  • 描述方法的安全要求。
  • 指定用于强制安全性的特性。
  • 由实时 (JIT) 编译器控制优化,以便易于调试代码。
  • 获取有关调用方的信息的方法。

当然,和Java一样,我们可以自定义自己的Attribute。通过定义一个特性类,可以创建您自己的自定义特性。该特性类直接或间接地从Attribute 派生,有助于方便快捷地在元数据中标识特性定义。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014年06月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档