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

  1. 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