Auf Englisch lesen

Freigeben über


AttributeTargets Enumeration

Definition

Gibt die Anwendungselemente an, auf die Attribute angewendet werden können.

Diese Enumeration unterstützt eine bitweise Kombination ihrer Memberwerte.

C#
[System.Flags]
public enum AttributeTargets
C#
[System.Flags]
[System.Serializable]
public enum AttributeTargets
C#
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum AttributeTargets
Vererbung
AttributeTargets
Attribute

Felder

All 32767

Auf jedes Anwendungselement können Attribute angewendet werden.

Assembly 1

Auf Assemblys können Attribute angewendet werden.

Class 4

Auf Klassen können Attribute angewendet werden.

Constructor 32

Auf Konstruktoren können Attribute angewendet werden.

Delegate 4096

Auf Delegaten können Attribute angewendet werden.

Enum 16

Auf Enumerationen können Attribute angewendet werden.

Event 512

Auf Ereignisse können Attribute angewendet werden.

Field 256

Auf Felder können Attribute angewendet werden.

GenericParameter 16384

Auf generische Parameter können Attribute angewendet werden. Zurzeit kann dieses Attribut nur in C#, MSIL (Microsoft Intermediate Language) und ausgegebenem Code angewendet werden.

Interface 1024

Auf Schnittstellen können Attribute angewendet werden.

Method 64

Auf Methoden können Attribute angewendet werden.

Module 2

Auf Module können Attribute angewendet werden. Module verweist auf eine portierbare ausführbare Datei (DLL oder EXE) und nicht auf ein Visual Basic-Standardmodul.

Parameter 2048

Auf Parameter können Attribute angewendet werden.

Property 128

Auf Eigenschaften können Attribute angewendet werden.

ReturnValue 8192

Auf Rückgabewerte können Attribute angewendet werden.

Struct 8

Auf Strukturen, d. h. auf Werttypen, können Attribute angewendet werden.

Beispiele

Im folgenden Beispiel wird die Anwendung von Attributen auf verschiedene Ziele veranschaulicht.

Hinweis

Visual Basic- und Visual C++-Syntax unterstützen derzeit nicht die Anwendung von Attributen auf Typparameter.

C#
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) {
        }
    }
}

Hinweise

Die AttributeUsageAttribute Klasse verwendet diese Enumeration, um die Art des Elements anzugeben, auf das es gültig ist, um ein Attribut anzuwenden.

AttributeTargets Aufzählungswerte können mit einem Bitzeiger ODER-Vorgang kombiniert werden, um die bevorzugte Kombination abzurufen.

Gilt für

Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Siehe auch