Číst v angličtině

Sdílet prostřednictvím


Chyba kompilátoru CS0456

Parametr typu Název parametru 1 má omezení "struktura", takže parametr Type Name 1 nelze použít jako omezení pro název parametru typu 2.

Omezení typu hodnoty jsou implicitně zapečetěná, takže tato omezení nelze použít jako omezení u druhého parametru typu. Důvodem je to, že typy hodnot nelze přepsat. Chcete-li tuto chybu vyřešit, umístěte omezení typu hodnoty přímo na druhý parametr typu, namísto toho nepřímo prostřednictvím prvního parametru typu.

Příklad

Následující ukázka vygeneruje CS0456.

// CS0456.cs  
// compile with: /target:library  
public class GenericsErrors  
{  
   public class G5<T> where T : struct  
   {  
      public class N<U> where U : T {}   // CS0456  
      public class N2<U> where U : struct {}   // OK  
   }  
}