C# 自定义特性的使用

自定义特性类必须直接或间接的从 Attribute 派生。
自定义特性类可以添加 AttributeUsageAttribute 特性来限制自定义特性的使用范围。

AttributeUsageAttribute 的使用参照:.NET框架 三种预定义特性的介绍

注意事项:
1、根据约定所有的特性类类名都是以“Attribute”结束,以便将他们和“.NET Framework”中的其他项区别开来。但是,在代码中使用特性时不需要指定attribute后缀。如下面例子所示,我们定义的特性为 AuthorAttribute,使用的时候用 Author 即可。
2、如果特性类包含一个属性,则该属性必须为读写属性。

例:

定义自定义特性:
 [AttributeUsage(System.AttributeTargets.All, AllowMultiple = false, Inherited = false)]
    public class AuthorAttribute : System.Attribute
    {
        private string name;
        public double version;

        public AuthorAttribute(string name)
        {
            this.name = name;
            version = 1.0;
        }
    }

自定义特性的使用:
  [Author("李四", version = 1.2)]
    public class SampleClass
    {
        public void SampleMethod() { }
    }


假如我们这样使用自定义特性:
[Author("张三", version = 1.1)]
    [Author("李四", version = 1.2)]
    public class SampleClass
    {
        public void SampleMethod() { }
    }

编译的时候会提示 “Author特性重复” 错误。因为我们定义的自定义特性的属性:AllowMultiple = false;设为true即可。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值