Поделиться через


Ошибка компилятора CS0450

Обновлен: Ноябрь 2007

Сообщение об ошибке

"Имя параметра типа": нельзя одновременно указать класс ограничения и ограничение "class" или "struct"
'Type Parameter Name': cannot specify both a constraint class and the 'class' or 'struct' constraint

Если параметр типа ограничен ограничением типа структуры, то его одновременное ограничение конкретным типом класса приводит к логическому противоречию, поскольку структура и класс являются взаимоисключающими категориями. Если параметр типа ограничен конкретным ограничением типа класса, то он по определению ограничен конкретным типом класса, поэтому указание ограничения типа класса является избыточным.

Пример

// CS0450.cs
// compile with: /t:library
public class GenericsErrors 
{
    public class B { }
    public class G3<T> where T : struct, B { } // CS0450
// To resolve, use the following line instead:
// public class G3<T> where T : B { }
}