首页 > 其他 > 详细

特性Attribute

时间:2017-04-10 09:23:46      阅读:206      评论:0      收藏:0      [点我收藏+]

1.Attribute介绍   

我们用VS进行编程时,智能提示再提供方法和属性列表的时候,有时会有下面的这种情况:

技术分享

提示某个方法已经是过时的了,还会给与提示信息。出现此效果就是Attribute(特性)的功劳了。    特性是一种特殊的类型,可以加载到程序集或者程序集中的类型上,这些类型包括模块、类、接口、结构、构造函数、方法、方法参数等,加载了特性的类型称作特性的目标。特性是为程序集添加元数据(描述数据的数据)的一种机制,通过它可以为编译器提供指示或者对数据的说明。

2.Attribute的使用

    Attribute在特性目标上使用构成如下图:

技术分享

[]后紧跟的就是Attribute的名称,()内可以传递构造函数需要传进的参数以及给属性赋值的参数。下面是obsoleteAttribute的定义

// 摘要:
    //     标记不再使用的程序元素。无法继承此类。
    [Serializable]
    [ComVisible(true)]
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Interface | AttributeTargets.Delegate, Inherited = false)]
    public sealed class ObsoleteAttribute : Attribute
    {
        // 摘要:
        //     使用默认属性初始化 System.ObsoleteAttribute 类的新实例。
        public ObsoleteAttribute();
        //
        // 摘要:
        //     使用指定的变通方法消息初始化 System.ObsoleteAttribute 类的新实例。
        //
        // 参数:
        //   message:
        //     描述可选的变通方法的文本字符串。
        public ObsoleteAttribute(string message);
        //
        // 摘要:
        //     使用变通方法消息和布尔值初始化 System.ObsoleteAttribute 类的新实例,该布尔值指示是否将使用已过时的元素视为错误。
        //
        // 参数:
        //   message:
        //     描述可选的变通方法的文本字符串。
        //
        //   error:
        //     指示是否将使用已过时的元素视为错误的布尔值。
        public ObsoleteAttribute(string message, bool error);

        // 摘要:
        //     获取指示编译器是否将使用已过时的程序元素视为错误的布尔值。
        //
        // 返回结果:
        //     如果将使用已过时的元素视为错误,则为 true;否则为 false。默认为 false。
        public bool IsError { get; }
        //
        // 摘要:
        //     获取变通方法消息,包括对可选程序元素的说明。
        //
        // 返回结果:
        //     变通方法文本字符串。
        public string Message { get; }
    }

特性目标应用了特性后,编译时会提示

 

特性Attribute

原文:http://www.cnblogs.com/yanglaosan/p/6687460.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!