特性類使用和說明

@zgcwkj  2019年05月27日

分類:

代碼 其它 

特性(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 注解類使用和說明


評論已關閉

Top