Compilerfehler CS0453

Der 'Type Name'-Typ darf keine NULL-Werte zulassen, wenn er als 'Parameter Name'-Parameter im generischen Typ oder in der generischen 'Generic Identifier'-Methode verwendet werden soll.

Dieser Fehler tritt auf, wenn Sie ein Argument, das kein Werttyp ist, beim Instanziieren eines generischen Typs bzw. einer generischen Methode verwenden, für den bzw. die die Einschränkung value festgelegt ist. Er kann auch auftreten, wenn Sie ein Werttypargument verwenden, das nicht auf Null festgelegt werden kann. Siehe die beiden letzten Codezeilen im folgenden Beispiel.

Beispiel

Der folgende Code generiert diese Warnung.

// CS0453.cs  
using System;  
public class HV<S> where S : struct { }

// CS0453: string is not a value type
public class H1 : HV<string> { }

// CS0453: H1 is a class, not a struct
public class H2 : HV<H1> { }

// CS0453: HV is based on a class, not a struct
public class H3<S> : HV<S> where S : class { }
public class H4<S> : HV<S> where S : struct { } // OK

// CS0453: HV accepts a nullable int type
public class H4 : HV<int?> { }

// CS0453: HV is based on Nullable type of int
public class H5 : HV<Nullable<Nullable<int>>> { }

Siehe auch