Lire en anglais

Partager via


AttributeTargets Énumération

Définition

Spécifie les éléments de l'application auxquels un attribut peut être appliqué.

Cette énumération prend en charge une combinaison au niveau du bit de ses valeurs membres.

[System.Flags]
public enum AttributeTargets
[System.Flags]
[System.Serializable]
public enum AttributeTargets
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum AttributeTargets
Héritage
AttributeTargets
Attributs

Champs

All 32767

L'attribut peut être appliqué à n'importe quel élément de l'application.

Assembly 1

L'attribut peut être appliqué à un assembly.

Class 4

L'attribut peut être appliqué à une classe.

Constructor 32

L'attribut peut être appliqué à un constructeur.

Delegate 4096

L'attribut peut être appliqué à un délégué.

Enum 16

L'attribut peut être appliqué à une énumération.

Event 512

L'attribut peut être appliqué à un événement.

Field 256

L'attribut peut être appliqué à un champ.

GenericParameter 16384

L'attribut peut être appliqué à un paramètre générique. Actuellement, cet attribut ne peut être appliqué qu'en C#, en MSIL (Microsoft Intermediate Language) et en code émis.

Interface 1024

L'attribut peut être appliqué à une interface.

Method 64

L'attribut peut être appliqué à une méthode.

Module 2

L'attribut peut être appliqué à un module. Module fait référence à un fichier exécutable portable (.dll ou.exe) et non à un module standard Visual Basic.

Parameter 2048

L'attribut peut être appliqué à un paramètre.

Property 128

L'attribut peut être appliqué à une propriété.

ReturnValue 8192

L'attribut peut être appliqué à une valeur de retour.

Struct 8

L'attribut peut être appliqué à une structure, c'est-à-dire à un type valeur.

Exemples

L’exemple suivant illustre l’application d’attributs à différentes cibles.

Notes

Visual Basic et la syntaxe Visual C++ ne prennent actuellement pas en charge l’application d’attributs aux paramètres de type.

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

Remarques

La AttributeUsageAttribute classe utilise cette énumération pour spécifier le type d’élément sur lequel il est valide pour appliquer un attribut.

AttributeTargets Les valeurs d’énumération peuvent être combinées avec une opération OR au niveau du bit pour obtenir la combinaison préférée.

S’applique à

Voir aussi