Compilerfehler CS0456
Aktualisiert: November 2007
Fehlermeldung
Der "Typparametername 1"-Typparameter weist die struct-Einschränkung auf. "Typparametername 1" kann daher nicht als Einschränkung für "Typparametername 2" verwendet werden
Type parameter 'Type Parameter Name 1' has the 'struct' constraint so 'Type Parameter Name 1' cannot be used as a constraint for 'Type Parameter Name 2'
Werttypeinschränkungen sind implizit versiegelt. Daher können diese Einschränkungen nicht als Einschränkungen für einen zweiten Typparameter verwendet werden. Grund hierfür ist, dass Werttypen nicht überschrieben werden können. Wenden Sie zum Beheben des Fehlers eine Werttypeinschränkung direkt auf den zweiten Typparameter an, anstatt den Vorgang indirekt über den ersten Typparameter auszuführen.
Beispiel
Im folgenden Beispiel wird CS0456 generiert.
// 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
}
}