zoukankan      html  css  js  c++  java
  • 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. 做对程序本身的 功能

    
    

    【二】特性步骤
    1 得到type
    2 得到函数,字段,属性等的信息
    3 得到特性
    4 处理

    
    

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

    
    

    2.得到函数,字段,属性等的信息。注意只有public的才能获取。
    字段 FieldInfo通过 type.GetField("num");
    属性 PropertyInfo 通过 type.GetProperties());
    方法 MethodInfo 通过 type.GetMethods();

    
    

    3 得到特性
    Attribute.GetCustomAttributes(mInfo)

    
    

    4.处理

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

     
  • 相关阅读:
    Pandas高级教程之:category数据类型
    Pandas高级教程之:处理缺失数据
    Pandas高级教程之:处理text数据
    密码学系列之:blowfish对称密钥分组算法
    架构之:数据流架构
    ES6中的新特性:Iterables和iterators
    密码学系列之:feistel cipher
    Pandas高级教程之:Dataframe的重排和旋转
    Electron实用技巧-electron-builder中用户协议(license)的使用及多语言支持
    Electron实用技巧-开机启动时隐藏主窗口,只显示系统托盘
  • 原文地址:https://www.cnblogs.com/0315cz/p/8601496.html
Copyright © 2011-2022 走看看