Attribute 创建 作用 如何使用

创建

public class HellowAttribute:Attribute
    {
        public int ID { get; set; }

        public string Name { get; set; }

        public void SayHi()
        {
            Console.WriteLine("Hi");
        }

        public void SayHi(string name)
        {
            Console.WriteLine("Hi {0}",name);
        }
    }

创建的时候需要注意

1、需要继承Attribute 

2、类名要以Attribute结尾


使用的时候如下,要注意,在不设置的情况下,一个特性,只能写一种,当然可以设置成多个Hellow一起写在上面

特性可以写在类上,方法,字段,属性上,都是可以的

//[Hellow]
    //[HellowAttribute]//全名和上面不带Attribute都可以
    //[Hellow()]//调用无参
    //[Hellow("凹凸曼")]//调用带一个参数的构造函数
    //[Hellow(ID=1,Name="张三")]//赋值

    public class DemoClass
    {

    }


特性的作用

特性的作用就是在不影响修饰对象的前提下,额外的给它增加一些备注信息

备注信息的作用是可以通过反射获取


例子:

枚举中使用的Remark如何获取

创建一个RemarkAttribute

public class RemarkAttribute:Attribute
    {
        
        private string _Sname;

        public RemarkAttribute(string sname)
        {
            _Sname = sname;
        }

        public string Sname { get {return _Sname; } }
        
    }

通过一个GetRemak类的Get方法 获取Sname  需要注意 为了方便,做成了扩展方法,并且类和方法都是静态

public static class GetRemak
    {
        public static string Get(this Enum shuiguo)
        {
            //获得类型
            Type type = shuiguo.GetType();
            //获取该类型中的字段
            FieldInfo fiel = type.GetField(shuiguo.ToString());
            //获取字段上面的Attribute
            RemarkAttribute r=(RemarkAttribute)fiel.GetCustomAttribute(typeof(RemarkAttribute));
            return r.Sname;
        }
    }
应用

ShuiGuo.PingGuo.Get()



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值