Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Błąd kompilatora CS0315

Nie można użyć typu "valueType" jako parametru typu "T" w typie ogólnym lub metodzie "TypeorMethod<T>". Nie ma konwersji boxing z "valueType" na "referenceType".

Ten błąd występuje, gdy ograniczasz typ ogólny do określonej klasy i próbujesz skonstruować wystąpienie tej klasy przy użyciu typu wartości, którego nie można niejawnie wpisać w polu.

Aby poprawić ten błąd

  1. Jednym z rozwiązań jest ponowne zdefiniowanie struktury jako klasy.

Przykład

Poniższy przykład generuje 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;  
    }  
}  

Zobacz też