Ошибка компилятора CS0449
Обновлен: Ноябрь 2007
Сообщение об ошибке
Ограничения class или struct должны следовать до любых других ограничений
The 'class' or 'struct' constraint must come before any other constraints
Ограничения параметра общего типа или метода должны выполняться в следующем порядке: сначала class или struct (если таковые имеются), затем все ограничения интерфейса, и наконец — все ограничения конструктора. Эта ошибка возникает в том случае, когда ограничение class или struct следует не первым. Чтобы устранить эту ошибку, измените порядок предложений ограничений.
Пример
Следующий пример приводит к возникновению ошибки CS0449.
// CS0449.cs
// compile with: /target:library
interface I {}
public class C4
{
public void F1<T>() where T : class, struct, I {} // CS0449
public void F2<T>() where T : I, struct {} // CS0449
public void F3<T>() where T : I, class {} // CS0449
// OK
public void F4<T>() where T : class {}
public void F5<T>() where T : struct {}
public void F6<T>() where T : I {}
}