c#特性

c#特性:

特性(Attribute)是用于在运行时传递程序中的各种元素(比如类,方法,结构,枚举,组件等)的行为信息的声明标签。可以通过使用特性向程序添加声明性信息。一个声明性标签时通过放置在它它所应用的元素前面的方括号来描述的。

特性(Attribute)用于添加元数据,如编译器指令和注释,描述,方法等其他信息。.Net框架提供了两种类型的特性:预定义特性和自定义特性。

【一】 介绍

在C#中的有三个重要的名词:字段,属性,特性。

字段: 一般变量都是字段。 可以通过Type.GetField("name")获取

如public string str;

private int num;

属性: 当使用了属性访问器get set的时候,我们称之为属性。通过Type.GetProperty("name")获取

特性:下面我们就来重点说特性。

  特性是一切继承自Attribute的类。是一种可由用户自定义的修饰符。它不能通过new实例化。只能通过附着在类,struct或者变量前面通过 [构造函数] 实例化,如果有参数的话,就是[构造函数(参数)]。为附着体追加额外的信息。一般来说,特性不能影响程序本身,但它会被编译器编译到程序集(Assembly)的元数据(Metadata)里,比注释有更多的作用:

1. 供编译器使用

2. Unity识别,如导航菜单栏菜单项,自定义Inspector等。

3. 做对程序本身的 功能

【二】特性步骤

得到type

得到函数,字段,属性等的信息

得到特性

处理

得到type

通过  typeof(类) 或者 对象.GetType(), 或者Assembly.GetType("name")

2.得到函数,字段,属性等的信息。注意只有public的才能获取。

字段 FieldInfo通过 type.GetField("num");

属性 PropertyInfo 通过 type.GetProperties());

方法 MethodInfo 通过 type.GetMethods();

得到特性

Attribute.GetCustomAttributes(mInfo)

4.处理

简单来讲,特性可以为附着体增加额外信息。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、什么是Atrribute ******首先,我们肯定Attribute是一个类,下面是msdn文档对它的描述:...
    func_老衲姓罗阅读 2,072评论 0 2
  • 深入浅出Attribute(中)——Attribute本质论 2007-06-04 小序: 上篇里,我们把Attr...
    北风知我意阅读 556评论 0 0
  • 什么是Attribute?Attribute是干什么使的?Attribute与Property到底有什么区...
    北风知我意阅读 326评论 0 0
  • Objective-C是基于C语言加入了面向对象特性和消息转发机制的动态语言,这意味着它不仅需要一个编译器,还需要...
    Sam_Lau阅读 24,898评论 29 219
  • C++特性之引用 本章内容:1 引用的不同用例1.1 引用变量1.2 引用数据成员1.3 引用参数1.4 引用作为...
    Haley_2013阅读 2,251评论 0 49

友情链接更多精彩内容