Ошибка компилятора CS0456
Параметр типа "Имя параметра типа 1" имеет ограничение struct, следовательно, "Имя параметра типа 1" не может использоваться как ограничение для "Имя параметра типа 2"
Ограничения типа значения являются неявно запечатанными, поэтому их нельзя использовать в качестве ограничений для второго параметра типа. Это обусловлено тем, что типы значений нельзя переопределять. Для устранения этой ошибки поместите ограничение типа значения непосредственно во второй параметр типа, вместо того чтобы делать это косвенно посредством первого параметра типа.
Следующий пример приводит к возникновению ошибки CS0456:
// CS0456.cs
// compile with: /target:library
public class GenericsErrors
{
public class G5<T> where T : struct
{
public class N<U> where U : T {} // CS0456
public class N2<U> where U : struct {} // OK
}
}
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: