Číst v angličtině

Sdílet prostřednictvím


Chyba kompilátoru CS0449

Omezení "třída" nebo "struktura" musí být před všemi dalšími omezeními.

Omezení parametru typu obecného typu nebo metody musí nastat v určitém pořadí: class nebo struct musí být nejprve, pokud existují, pak všechna omezení rozhraní a nakonec jakákoli omezení konstruktoru. Tato chyba je způsobená tím, že classstruct se jako první nezobrazuje omezení. Pokud chcete tuto chybu vyřešit, přeuspořádte klauzule constraint.

Příklad

Následující ukázka vygeneruje 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 {}  
}