Прочитать на английском

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


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

Все другие ограничения должны следовать после ограничения "class" или "struct".

Ограничения параметра общего типа или метода должны применяться в следующем порядке: сначала class или struct (если таковые имеются), затем все ограничения интерфейса, и наконец — все ограничения конструктора. Эта ошибка возникает в том случае, когда ограничение class или struct следует не первым. Чтобы устранить эту ошибку, измените порядок предложений ограничений.

Пример

Следующий пример приводит к возникновению ошибки CS0449:

C#
// 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 {}  
}