Compilerfehler CS0315
Der Typ „valueType“ kann nicht als Typparameter „T“ im generischen Typ oder in der generischen Methode „TypeorMethod<T>“ verwendet werden. Es gibt keine Boxing-Konvertierung von "Werttyp" in "Verweistyp".
Dieser Fehler tritt auf, wenn Sie einen generischen Typ auf eine bestimmte Klasse beschränken und versuchen, eine Instanz dieser Klasse mithilfe eines Werttyps zu erstellen, der nicht implizit darin geschachtelt werden kann.
So beheben Sie diesen Fehler
- Eine Lösung besteht darin, die Struktur als Klasse neu zu definieren.
Beispiel
Im folgenden Beispiel wird CS0315 generiert:
// 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;
}
}
Weitere Informationen
Zusammenarbeit auf GitHub
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.