Auf Englisch lesen

Freigeben über


Compilerfehler CS0403

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')".

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 möglicherweise 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  
    }  
}