Číst v angličtině

Sdílet prostřednictvím


Chyba kompilátoru CS0315

Typ valueType nelze použít jako parametr typu T v obecném typu nebo metodě TypeorMethod<T>. Neexistuje žádný převod boxingu z valueType na referenceType.

K této chybě dochází, když omezíte obecný typ na konkrétní třídu a pokusíte se sestavit instanci této třídy pomocí typu hodnoty, který nelze implicitně zadávat do pole.

Oprava této chyby

  1. Jedním zřešeních

Příklad

Následující příklad vygeneruje CS0315:

// 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;  
    }  
}  

Viz také