在C#中,AttributeUsage
是一個元數據特性,它用于指定自定義屬性可以如何應用于代碼元素(如類、方法、屬性等)。AttributeUsage
特性定義了屬性的使用約束,以確保它們在代碼中以正確的方式應用。
AttributeUsage
特性有兩個主要的屬性:
AttributeTargets
:這是一個枚舉類型,表示屬性可以應用于哪些代碼元素。例如,你可以將其設置為AttributeTargets.Class
、AttributeTargets.Method
或AttributeTargets.Property
,以限制屬性僅適用于類、方法或屬性。
AllowMultiple
:這是一個布爾值,表示屬性是否可以多次應用于同一個代碼元素。如果將其設置為true
,則屬性可以多次應用于同一個元素;如果將其設置為false
,則屬性只能應用于每個元素一次。
以下是一個使用AttributeUsage
特性的示例:
using System;
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class MyCustomAttribute : Attribute
{
public string MyProperty { get; set; }
public MyCustomAttribute(string myProperty)
{
MyProperty = myProperty;
}
}
public class MyClass
{
[MyCustom("Hello, World!")]
public void MyMethod()
{
Console.WriteLine("My method is decorated with MyCustomAttribute.");
}
}
在這個示例中,我們定義了一個名為MyCustomAttribute
的自定義屬性,并使用AttributeUsage
特性限制它只能應用于方法,并且只能應用一次。然后,我們將此屬性應用于MyClass
類中的MyMethod
方法。