Leggere in inglese

Condividi tramite


AttributeTargets Enumerazione

Definizione

Specifica gli elementi dell'applicazione ai quali è valido applicare un attributo.

Questa enumerazione supporta una combinazione bit per bit dei rispettivi valori dei membri.

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
Ereditarietà
AttributeTargets
Attributi

Campi

All 32767

Attributo applicabile a tutti gli elementi dell'applicazione.

Assembly 1

Attributo applicabile a un assembly.

Class 4

Attributo applicabile a una classe.

Constructor 32

Attributo applicabile a un costruttore.

Delegate 4096

Attributo applicabile a un delegato.

Enum 16

Attributo applicabile a un'enumerazione.

Event 512

Attributo applicabile a un evento.

Field 256

Attributo applicabile a un campo.

GenericParameter 16384

Attributo applicabile a un parametro generico. Attualmente, questo attributo può essere applicato solo in C#, in MSIL (Microsoft Intermediate Language) e nel codice generato.

Interface 1024

Attributo applicabile a un'interfaccia.

Method 64

Attributo applicabile a un metodo.

Module 2

Attributo applicabile a un modulo. Module fa riferimento a un file eseguibile di tipo PE (dll o exe) e non a un modulo di Visual Basic standard.

Parameter 2048

Attributo applicabile a un parametro.

Property 128

Attributo applicabile a una proprietà.

ReturnValue 8192

Attributo applicabile a un valore restituito.

Struct 8

Attributo applicabile a una struttura, ovvero a un tipo valore.

Esempio

Nell'esempio seguente viene illustrata l'applicazione di attributi a varie destinazioni.

Nota

Visual Basic e la sintassi di Visual C++ attualmente non supportano l'applicazione di attributi ai parametri di 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) {
        }
    }
}

Commenti

La AttributeUsageAttribute classe usa questa enumerazione per specificare il tipo di elemento in cui è valido applicare un attributo.

AttributeTargets I valori di enumerazione possono essere combinati con un'operazione OR bit per bit per ottenere la combinazione preferita.

Si applica a

Prodotto Versioni
.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

Vedi anche