zoukankan      html  css  js  c++  java
  • AttributeUsage 定义/控制自定义属性的使用

    AttributeUsage 类是另一个预定义的属性类,以帮助我们控制自定义属性的使用。亦即我们可以定义自定义属性类的属性。这个类描述了如何使用自定义的属性类。AttributeUsage有三个数据属性可用以修饰我们的自定义的属性: 

    ValidOn

    定义了自定义属性在哪些程序实体上可被使用。这个可使用实体的列表可通过AttributeTargets枚举类型的OR操作进行设置

    [AttributeUsage(AttributeTargets.Class)]
    public class ClassTargetAttribute : Attribute
    {

    }
    [ClassTarget]只能在Class上使用!

    AttributeTargets的取值:

    标记

    用途

    All

    用于任何地方

    Assembly

    用于组合体

    Class

    用于类

    Contructor

    用于构造函数

    Delegate

    用于委托

    Enum

    用于枚举

    Event

    用于事件

    Field

    用于事件

    Interface

    用于接口

    Method

    用于方法

    Module

    用于模块

    Parameter

    用于参数

    Property

    用于属性

    Return Value

    用于返回值

    Struct

    用于结构

    AllowMultiple

    定义了是否可在同一个程序实体上同时使用多个属性(同一属性使用多次)进行修饰

    AllowMultiple=true时,可以使用多次,AllowMultiple=false时,不能使用多次。

    Inherited

    定义了自定义属性的修饰是否可由被修饰类的派生类继承.

    Inherited=false时,该属性类的子类不能用反射拿到该类的属性。

    例:

    [AttributeUsage( AllowMultiple = false)]
    public class A : Attribute
    {

    }

    public class B: A
    {

    }
    当属性A的AllowMultiple =flase时,现在通过反射在B类上取不到A上面的属性。


  • 相关阅读:
    P2711 小行星 最小割
    bzoj2141: 排队 cdq分治
    bzoj 4237: 稻草人 cdq分治
    P1527 [国家集训队]矩阵乘法 整体二分
    P2617 Dynamic Rankings 整体二分
    P3834 【模板】可持久化线段树 1(主席树) 整体二分
    SPREAD for Windows Forms 代码片段
    PHP+Oracle Instant Client
    SQL利用CASE按分组显示合计
    SPREAD for Windows Forms 控制输入法
  • 原文地址:https://www.cnblogs.com/ycdx2001/p/1423316.html
Copyright © 2011-2022 走看看