展開 最小化

AttributeTargets 列挙体

2013/12/12

属性を適用できるアプリケーション要素を指定します。

この列挙体には、メンバー値のビットごとの組み合わせを可能にする FlagsAttribute 属性が含まれています。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

[FlagsAttribute]
public enum AttributeTargets

メンバー名説明
All任意のアプリケーション要素に属性を適用できます。
Assemblyアセンブリに属性を適用できます。
Classクラスに属性を適用できます。
Constructorコンストラクターに属性を適用できます。
Delegateデリゲートに属性を適用できます。
Enum列挙体に属性を適用できます。
Eventイベントに属性を適用できます。
Fieldフィールドに属性を適用できます。
GenericParameterジェネリック パラメーターに属性を適用できます。
メモメモ:
現在、この属性は C#、Microsoft Intermediate Language (MSIL)、および出力済みコードで適用することができます。
Interfaceインターフェイスに属性を適用できます。
Methodメソッドに属性を適用できます。
Moduleモジュールに属性を適用できます。
メモメモ:
Module は、Visual Basic 標準モジュールではなく移植可能な実行可能ファイル (.dll または .exe) を参照します。
Parameterパラメーターに属性を適用できます。
Propertyプロパティに属性を適用できます。
ReturnValue戻り値に属性を適用できます。
Struct構造体、つまり、値型に属性を適用できます。

この列挙体は、属性を適用できる要素の種類を指定するために AttributeUsageAttribute クラスで使用されます。

AttributeTargets 列挙値にビットごとの OR 演算を組み合わせて、属性の適切な組み合わせを取得できます。

次の例では、さまざまなターゲットへの属性の適用を示します。

メモメモ:

Visual Basic の構文では、型パラメーターへの属性の適用は現在サポートされません。


using System;

namespace AttTargsCS {
    // This attribute is only valid on a class.
    [AttributeUsage(AttributeTargets.Class)]
    public class ClassTargetAttribute : Attribute {
    }

    // This attribute is only valid on a method.
    [AttributeUsage(AttributeTargets.Method)]
    public class MethodTargetAttribute : Attribute {
    }

    // This attribute is only valid on a constructor.
    [AttributeUsage(AttributeTargets.Constructor)]
    public class ConstructorTargetAttribute : Attribute {
    }

    // This attribute is only valid on a field.
    [AttributeUsage(AttributeTargets.Field)]
    public class FieldTargetAttribute : Attribute {
    }

    // This attribute is valid on a class or a method.
    [AttributeUsage(AttributeTargets.Class|AttributeTargets.Method)]
    public class ClassMethodTargetAttribute : Attribute {
    }

    // This attribute is valid on a generic type parameter.
    [AttributeUsage(AttributeTargets.GenericParameter)]
    public class GenericParameterTargetAttribute : Attribute {
    }

    // This attribute is valid on any target.
    [AttributeUsage(AttributeTargets.All)]
    public class AllTargetsAttribute : Attribute {
    }

    [ClassTarget]
    [ClassMethodTarget]
    [AllTargets]
    public class TestClassAttribute {
        [ConstructorTarget]
        [AllTargets]
        TestClassAttribute() {
        }

        [MethodTarget]
        [ClassMethodTarget]
        [AllTargets]
        public void Method1() {
        }

        [FieldTarget]
        [AllTargets]
        public int myInt;

        public void GenericMethod<
            [GenericParameterTarget, AllTargets] T>(T x) {
        }

        static void Main(string[] args) {
        }
    }
}


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示:
© 2014 Microsoft