特性(Attribute)是用於在運行時傳遞程序中各種元素(比如類、方法、結構、枚舉、組件等)的行為信息的聲明性標簽
在執行前調用
新建一個類,類名為 AttributeClass(你也可以自己想個)
繼承 Attribute(必須繼承 Attribute 類),代碼如下:
namespace AttributeDemo
{
public class AttributeClass : Attribute//特性類 必須繼承 Attribute 類
{
//
}
}
為特性類添加個入口:
namespace AttributeDemo
{
public class AttributeClass : Attribute//特性類 必須繼承 Attribute 類
{
public AttributeClass()//類的入口
{
//在這裏寫代碼
}
}
}
為特性類添加在哪裏可以使用的說明:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property)]//特性類能在什麼地方使用
//[AttributeUsage(AttributeTargets.Class | AttributeTargets.Constructor | AttributeTargets.Field | AttributeTargets.Method | AttributeTargets.Property, AllowMultiple = true)}
namespace AttributeDemo
{
public class AttributeClass : Attribute//特性類 必須繼承 Attribute 類
{
public AttributeClass()//類的入口
{
//在這裏寫代碼
}
}
}
然後就可以在你需要執行特性類的類名或者方法(函數)上填寫上 [AttributeClass](中括號要加上)
在執行前調用並返回相關值或者數據
基於上面的基礎,加一個 Get,Set 方法
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property)]//特性類能在什麼地方使用
namespace AttributeDemo
{
public class AttributeClass : Attribute//特性類 必須繼承 Attribute 類
{
public AttributeClass()//類的入口
{
//在這裏寫代碼
}
public AttributeClass(int size)//類的入口
{
this.Size = size;
}
public int Size { get; set; } = 0;
}
}
然後就可以在你需要執行特性類的類名或者方法(函數)上填寫上 [AttributeClass(size的值)](中括號要加上)
然後在執行的方法內部增加以下代碼,把特性類的值取出來使用
Type type = typeof(特性類加在某個類或者函數的類名);
//Type type = typeof(this);//非靜態類可以直接使用 this
foreach (AttributeClass attributeClass in attributeClasss)
{
Console.WriteLine("特性類傳出的數據{0}", attributeClass.Size);
}
至此,你已經學會怎麼使用了!(其它部分請參考網上的其它資料)
相關類似推薦:Java 注解類使用和說明
版權屬於:zgcwkj
本文鏈接:https://www.zgcwkj.com/archives/110.html
轉載聲明:請注明本文章的標題及內容的出處和聲明,謝謝
評論已關閉