Ошибка компилятора CS0315
Тип valueType нельзя использовать в качестве параметра типа T в универсальном типе или методе TypeorMethod<T>. Нет преобразования-упаковки из "тип_значения" в "тип_ссылки".
Эта ошибка происходит, когда вы ограничиваете универсальный тип конкретным классом и пытаетесь создать экземпляр этого класса, используя тип значения, который не может быть неявно упакован.
- Одно из решений — переопределить структуру как класс.
При компиляции следующего примера возникнет ошибка 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;
}
}
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: