Ler em inglês

Compartilhar via


AttributeTargets Enumeração

Definição

Especifica os elementos do aplicativo no qual ele é válido para aplicar um atributo.

Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.

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
Herança
AttributeTargets
Atributos

Campos

All 32767

O atributo pode ser aplicado a qualquer elemento de aplicativo.

Assembly 1

O atributo pode ser aplicado a um assembly.

Class 4

O atributo pode ser aplicado a uma classe.

Constructor 32

O atributo pode ser aplicado a um construtor.

Delegate 4096

O atributo pode ser aplicado a um delegado.

Enum 16

O atributo pode ser aplicado a uma enumeração.

Event 512

O atributo pode ser aplicado a um evento.

Field 256

O atributo pode ser aplicado a um campo.

GenericParameter 16384

O atributo pode ser aplicado a um parâmetro genérico. Atualmente, esse atributo só pode ser aplicado no C#, no MSIL (Microsoft Intermediate Language) e no código emitido.

Interface 1024

O atributo pode ser aplicado a uma interface.

Method 64

O atributo pode ser aplicado a um método.

Module 2

O atributo pode ser aplicado a um módulo. Module se refere a um arquivo PE (.dll ou .exe) e não a um módulo padrão do Visual Basic.

Parameter 2048

O atributo pode ser aplicado a um parâmetro.

Property 128

O atributo pode ser aplicado a uma propriedade.

ReturnValue 8192

O atributo pode ser aplicado a um valor retornado.

Struct 8

Atributo pode ser aplicado a uma estrutura; ou seja, um tipo de valor.

Exemplos

O exemplo a seguir ilustra a aplicação de atributos para vários destinos.

Observação

Visual Basic e sintaxe do Visual C++ atualmente não dão suporte à aplicação de atributos para parâmetros de tipo.

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

Comentários

A AttributeUsageAttribute classe usa essa enumeração para especificar o tipo de elemento no qual é válido aplicar um atributo.

AttributeTargets Os valores de enumeração podem ser combinados com uma operação OR bit a bit para obter a combinação preferencial.

Aplica-se a

Produto Versões
.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

Confira também