Leer en inglés

Compartir a través de


AttributeTargets Enumeración

Definición

Especifica los elementos de aplicación en los que se permite aplicar un atributo.

Esta enumeración admite una combinación bit a bit de sus valores de miembro.

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
Herencia
AttributeTargets
Atributos

Campos

All 32767

El atributo puede aplicarse a cualquier elemento de la aplicación.

Assembly 1

El atributo puede aplicarse a un ensamblado.

Class 4

El atributo puede aplicarse a una clase.

Constructor 32

El atributo puede aplicarse a un constructor.

Delegate 4096

El atributo puede aplicarse a un delegado.

Enum 16

El atributo puede aplicarse a una enumeración.

Event 512

El atributo puede aplicarse a un evento.

Field 256

El atributo puede aplicarse a un campo.

GenericParameter 16384

El atributo puede aplicarse a un parámetro genérico. Actualmente, este atributo puede aplicarse únicamente en C#, lenguaje intermedio de Microsoft (MSIL) y código emitido.

Interface 1024

El atributo puede aplicarse a una interfaz.

Method 64

El atributo puede aplicarse a un método.

Module 2

El atributo puede aplicarse a un módulo. Module hace referencia a un archivo portable ejecutable (archivo .dll o .exe) y no a un módulo estándar de Visual Basic.

Parameter 2048

El atributo puede aplicarse a un parámetro.

Property 128

El atributo puede aplicarse a una propiedad.

ReturnValue 8192

El atributo puede aplicarse a un valor devuelto.

Struct 8

El atributo puede aplicarse a una estructura, es decir, a un tipo de valor.

Ejemplos

En el ejemplo siguiente se muestra la aplicación de atributos a varios destinos.

Nota

Visual Basic y la sintaxis de Visual C++ no admiten actualmente la aplicación de atributos para escribir parámetros.

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

Comentarios

La AttributeUsageAttribute clase usa esta enumeración para especificar el tipo de elemento en el que es válido aplicar un atributo.

AttributeTargets los valores de enumeración se pueden combinar con una operación OR bit a bit para obtener la combinación preferida.

Se aplica a

Producto Versiones
.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

Consulte también