共用方式為


使用屬性 (C# 程式設計手冊)

更新:2007 年 11 月

屬性 (Attribute) 可以放置在大部分的宣告中 (儘管特定的屬性可能限制其有效的宣告類型)。在語法上,指定屬性的方式是,將屬型名稱封閉在方括弧中,並放置在其適用的實體的宣告之前。例如,包含屬性 DllImport 的方法會以下列方式宣告:

[System.Runtime.InteropServices.DllImport("user32.dll")]
extern static void SampleMethod();

如需詳細資訊,請參閱 DllImportAttribute 類別

許多屬性都具有參數,這些可能是位置、未命名或具名的參數,任何位置 (Positional) 參數必須以特定的順序指定並且不能省略;具名參數是選擇性的並且可以任何順序指定,而位置參數會先指定。例如,這三個屬性相等:

[DllImport("user32.dll")]
[DllImport("user32.dll", SetLastError=false, ExactSpelling=false)]
[DllImport("user32.dll", ExactSpelling=false, SetLastError=false)]

第一個參數為 DLL 名稱,是位置參數而且一定排在首位;其他都是具名參數。在此情況下,由於兩個具名參數預設都是 false,因此都會遭到省略。如需預設參數值的資訊,請參閱個別屬性的文件。

宣告中可放置一個以上的屬性,不論是在分開的括號或同一個括號中:

void MethodA([In][Out] ref double x) { }
void MethodB([Out][In] ref double x) { }
void MethodC([In, Out] ref double x) { }

有些屬性可以指定給特定實體一次以上,這種多重使用屬性的範例就是條件式

[Conditional("DEBUG"), Conditional("TEST1")]
void TraceMethod()
{
    // ...
}
注意事項:

依照慣例,所有屬性名稱都是以 "Attribute" 這個字做為結尾,以便辨別屬性與 .NET Framework 中的其他項目。但是在程式碼中使用屬性時,並不需要指定屬性字尾。例如,[DllImport] 相同於 [DllImportAttribute],但在 .NET Framework 中,屬性的實際名稱是 DllImportAttribute。

請參閱

概念

C# 程式設計手冊

參考

反映 (C# 程式設計手冊)

屬性 (C# 程式設計手冊)

明示屬性目標 (C# 程式設計手冊)

建立自訂屬性 (C# 程式設計手冊)

使用反映存取屬性 (C# 程式設計手冊)

Attribute

System.Reflection