天天看點

C# 特性

=================================AttributeUsage類

屬性: AllowMultiple 指定是否可以在某個類或者方法中存在多個特性

例如在方法上有多個特性

[Developer("李四", "項目主管", Yesno = true)]

[Developer("王五", "項目經理", Yesno = true)]

public void aa()

{}

繼承屬性: Inherited <?xml:namespace prefix="[default]" ns="http://www.w3.org/1999/xhtml">?xml:namespace>假如有一個類繼承自我們的DemoClass,那麼當我們将RecordAttribute添加到DemoClass上時,DemoClass的子類也會獲得該特性。而當特性應用于一個方法,如果繼承自該類的子類将這個方法覆寫,那麼Inherited則用于說明是否子類方法是否繼承這個特性。

類: AttributeTargets

=================================AttributeTargets

publicenumAttributeTargets{

    Assembly = 1,        //可以對程式集應用屬性。

    Module = 2,             //可以對子產品應用屬性。

    Class = 4,           //可以對類應用屬性。

    Struct = 8,             //可以對結構應用屬性,即值類型。

    Enum = 16,           //可以對枚舉應用屬性。

    Constructor = 32,    //可以對構造函數應用屬性。

    Method = 64,         //可以對方法應用屬性。

    Property = 128,          //可以對屬性 (Property) 應用屬性 (Attribute)。

    Field = 256,         //可以對字段應用屬性。

    Event = 512,         //可以對事件應用屬性。

    Interface = 1024,           //可以對接口應用屬性。

    Parameter = 2048,           //可以對參數應用屬性。

    Delegate = 4096,            //可以對委托應用屬性。

    ReturnValue = 8192,            //可以對傳回值應用屬性。

    GenericParameter = 16384,   //可以對泛型參數應用屬性。

    All = 32767, //可以對任何應用程式元素應用屬性。

}

=================================自定義特性(DeveloperAttribute類)

=================================特性的使用(必須在共有類型上使用)

using System.Runtime.InteropServices;

1,在類上使用

public class aa

2,在方法上使用

=================================檢索儲存在特性中的資訊

1,檢索存在類上的特性的資訊

2,檢索存在方法上的特性的資訊

本文出自 “” 部落格,請務必保留此出處