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


Ошибка компилятора 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 {}
}