Compilerfehler CS0315
Aktualisiert: November 2007
Fehlermeldung
Der Typ "Werttyp" kann in dem/r generischen Typ oder Methode "TypoderMethode<T>" nicht als Typparameter "T" verwendet werden. Es ist keine Boxing-Konvertierung von "Werttyp" in "Verweistyp" vorhanden.
The type 'valueType' cannot be used as type parameter 'T' in the generic type or method 'TypeorMethod<T>'. There is no boxing conversion from 'valueType' to 'referenceType'.
Dieser Fehler tritt auf, wenn Sie einen generischen Typ auf eine bestimmte Klasse beschränken und versuchen, eine Instanz dieser Klasse mit einem Werttyp, der nicht implizit darin geschachtelt werden kann, zu erstellen.
So beheben Sie diesen Fehler
- Eine Lösungsmöglichkeit ist, die Struktur neu als Klasse zu definieren.
Beispiel
Durch das folgende Beispiel wird der Fehler CS0315 ausgelöst:
// cs0315.cs
public class ClassConstraint { }
public struct ViolateClassConstraint { }
public class Gen<T> where T : ClassConstraint
{
}
public class Test
{
public static int Main()
{
Gen<ViolateClassConstraint> g = new Gen<ViolateClassConstraint>(); //CS0315
return 1;
}
}