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.
- Jednym z rozwiązań jest ponowne zdefiniowanie struktury jako klasy.
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;
}
}
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię: