Freigeben über


Compilerfehler CS0403

Aktualisiert: November 2007

Fehlermeldung

NULL kann nicht in den Typparameter "Name" konvertiert werden, da dieser Werttyp möglicherweise nicht auf NULL festgelegt werden kann. Verwenden Sie stattdessen "default(T)".
Cannot convert null to type parameter 'name' because it could be a non-nullable value type. Consider using default('T') instead.

Sie können einem unbekannten benannten Typ nicht NULL zuweisen, da es sich möglicherweise um einen Werttyp handelt, für den eine NULL-Zuweisung nicht zulässig ist. Wenn die generische Klasse keine Werttypen annimmt, verwenden Sie die Klassentypeinschränkung. Wenn die Klasse Werttypen (z. B. die integrierten Typen) annimmt, können Sie die NULL-Zuweisung durch den Ausdruck default(T) ersetzen, wie im folgenden Beispiel gezeigt.

Beispiel

Im folgenden Beispiel wird CS0403 generiert.

// CS0403.cs
// compile with: /target:library
class C<T>
{
   public void f()
   {
      T t = null;  // CS0403
      T t2 = default(T);   // OK
    }
}

class D<T> where T : class 
{
   public void f()
   {
      T t = null;  // OK
    }
}