zoukankan      html  css  js  c++  java
  • C#(99):属性 Attribute

    一、创建属性

    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Constructor, AllowMultiple = true, Inherited = true)]
    //AttributeTargets:属性应用到的目标类型。AllowMultiple:是否允许一个元素应用多个此属性。Inherited:属性能否有派生类继承。
    public class CodeStatusAttribute : Attribute
    {
        private string status;
        public CodeStatusAttribute(string status)//构造函数为位置参数
        {
            this.status = status;
        }
        public string Tester { set; get; }//属性和公共字段为命名参数
        public string Coder { set; get; }
        
        public override string ToString()
        {
            return status;
        }
    }

    二、应用属性

    //1、使用单个属性
    [CodeStatus("a版")]
    public class Tringe
    { }
    
    //2、使用多个属性
    [CodeStatus("b版", Coder = "小李")]
    [CodeStatus("b版", Coder = "小王")]
    //也可以[CodeStatus("aa",Coder="小李"),CodeStatus("aa",Coder="小王")]
    public class Square
    { }
    
    //3、使用位置参数和命名参数
    //type表示此属性与什么元素关联,可能有:assembly,field,method,param,property,return,moudule,event,type等。。
    [type: CodeStatus("最终版", Coder = "小李", Tester = "老李")]
    public class Circle
    {
        [CodeStatus("最终版", Coder = "小李", Tester = "老李")]
        public Circle()
        {
    
        }
    }

    三、反射属性

    //1、获取类上的属性。
    Type t = typeof(Circle);
    Attribute[] attArr = Attribute.GetCustomAttributes(t, typeof(CodeStatusAttribute));
    //
    object[] attArr1 = t.GetCustomAttributes(typeof(CodeStatusAttribute), true);
    
    //2、获取成员上属性
    Attribute[] attArr3 = t.GetConstructors()[0].GetCustomAttributes().ToArray();//构造函数,获取字段GetField("..")
    
    //3、遍历
    foreach (Attribute attr in attArr3)
    {
        CodeStatusAttribute item = (CodeStatusAttribute)attr;
        Console.Write(item.ToString() + item.Coder + item.Tester);
    }

    四、Net内置属性

    [Condeitonal] //条件控制
    [Obsolete] //废弃属性
    [Serializable]//可序列化属性
    [AssemblyDelaySign] //程序集延迟签名
  • 相关阅读:
    小程序源码丢失了怎么在微信平台反编译找回
    做前端技术方案选型的时候,你是怎么做决策的?
    小程序源码丢失了怎么在微信平台反编译找回
    关于form.submit()不能提交表单的错误原因
    IE 8兼容:X-UA-Compatible的解释
    常用的CSS Hack技术集锦
    PHP制作验证码
    利用原生JavaScript获取样式的方式小结
    利用Javascript获取当前日期的农历日期
    教你利用iframe在网页中显示天气
  • 原文地址:https://www.cnblogs.com/springsnow/p/9433923.html
Copyright © 2011-2022 走看看