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.
- Eine Lösung besteht darin, die Struktur als Klasse neu zu definieren.
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;
}
}
Feedback zu .NET
.NET ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben: