您好,登錄后才能下訂單哦!
這篇文章主要介紹“C#中的Attribute怎么用”,在日常操作中,相信很多人在C#中的Attribute怎么用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C#中的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); }
[Condeitonal] //條件控制 [Obsolete] //廢棄屬性 [Serializable]//可序列化屬性 [AssemblyDelaySign] //程序集延遲簽名
到此,關于“C#中的Attribute怎么用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。