(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Generische Typen und Attribute (C#-Programmierhandbuch)

Das Anwenden von Attributen auf generische Typen erfolgt in derselben Weise wie auf nicht generische Typen. Weitere Informationen zum Anwenden von Attributen finden Sie unter Attribute (C# und Visual Basic).

Benutzerdefinierte Attribute dürfen nur auf offene generische Typen (generische Typen, für die keine Typargumente bereitgestellt werden) und auf geschlossene konstruierte generische Typen (generische Typen, die Argumente für alle Typparameter bereitstellen) verweisen.

In den folgenden Beispielen wird dieses benutzerdefinierte Attribut verwendet:


class CustomAttribute : System.Attribute
{
    public System.Object info;
}


Ein Attribut kann auf einen offenen generischen Typ verweisen:


public class GenericClass1<T> { }

[CustomAttribute(info = typeof(GenericClass1<>))]
class ClassA { }


Geben Sie mehrere Typparameter mit der entsprechenden Anzahl von Kommas an. In diesem Beispiel verfügt GenericClass2 über zwei Typparameter:


public class GenericClass2<T, U> { }

[CustomAttribute(info = typeof(GenericClass2<,>))]
class ClassB { }


Ein Attribut kann auf einen geschlossenen, konstruierten generischen Typ verweisen:


public class GenericClass3<T, U, V> { }

[CustomAttribute(info = typeof(GenericClass3<int, double, string>))]
class ClassC { }


Ein Attribut, das auf einen generischen Typparameter verweist, verursacht einen Kompilierungsfehler:


//[CustomAttribute(info = typeof(GenericClass3<int, T, string>))]  //Error
class ClassD<T> { }


Ein generischer Typ kann nicht von Attribute erben:


//public class CustomAtt<T> : System.Attribute {}  //Error


Um zur Laufzeit Informationen zu einem generischen Typ oder Typparameter abzurufen, können Sie die Methoden von System.Reflection verwenden. Weitere Informationen finden Sie unter Generische Typen und Reflektion (C#-Programmierhandbuch)

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft