AttributeTargets Wyliczenie

Definicja

Określa elementy aplikacji, na których jest prawidłowy zastosowanie atrybutu.

To wyliczenie obsługuje bitową kombinację jego wartości składowych.

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
Dziedziczenie
AttributeTargets
Atrybuty

Pola

All 32767

Atrybut można zastosować do dowolnego elementu aplikacji.

Assembly 1

Atrybut można zastosować do zestawu.

Class 4

Atrybut można zastosować do klasy.

Constructor 32

Atrybut można zastosować do konstruktora.

Delegate 4096

Atrybut można zastosować do delegata.

Enum 16

Atrybut można zastosować do wyliczenia.

Event 512

Atrybut można zastosować do zdarzenia.

Field 256

Atrybut można zastosować do pola.

GenericParameter 16384

Atrybut można zastosować do parametru ogólnego. Obecnie ten atrybut można stosować tylko w języku C#, języku Microsoft Intermediate Language (MSIL) i emitowanym kodzie.

Interface 1024

Atrybut można zastosować do interfejsu.

Method 64

Atrybut można zastosować do metody .

Module 2

Atrybut można zastosować do modułu. Moduleodnosi się do przenośnego pliku wykonywalnego (.dll or.exe), a nie modułu standardowego Visual Basic.

Parameter 2048

Atrybut można zastosować do parametru.

Property 128

Atrybut można zastosować do właściwości.

ReturnValue 8192

Atrybut można zastosować do wartości zwracanej.

Struct 8

Atrybut można zastosować do struktury; czyli typ wartości.

Przykłady

Poniższy przykład ilustruje zastosowanie atrybutów do różnych obiektów docelowych.

Uwaga

Visual Basic i składni języka Visual C++ obecnie nie obsługują stosowania atrybutów do parametrów typu.

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

Uwagi

Klasa AttributeUsageAttribute używa tego wyliczenia, aby określić rodzaj elementu, na którym jest prawidłowy do zastosowania atrybutu.

AttributeTargets Wartości wyliczenia można połączyć z bitową operacją OR w celu uzyskania preferowanej kombinacji.

Dotyczy

Produkt Wersje
.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

Zobacz też