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
}
}