Freigeben über


Compilerwarnung (Stufe 1) CS1720

Aktualisiert: November 2007

Fehlermeldung

Der Ausdruck führt immer zu System.NullReferenceException, da der Standardwert von "generischer Typ" NULL ist.
Expression will always cause a System.NullReferenceException because the default value of 'generic type' is null

Dieser Fehler tritt auf, wenn Sie einen Ausdruck schreiben, der den Standardwert einer generischen Typvariablen enthält, die einen Referenztyp darstellt (z. B. eine Klasse). Betrachten Sie hierzu den folgenden Ausdruck:

default(T).ToString()

Da T ein Referenztyp ist, ist sein Standardwert NULL. Beim Versuch, die ToString-Methode darauf anzuwenden, wird NullReferenceException ausgegeben.

Beispiel

Mit der Klassenverweiseinschränkung für Typ T wird sichergestellt, dass T ein Referenztyp ist.

Im folgenden Beispiel wird CS1720 generiert.

// CS1720.cs
using System;
public class Tester 
{
    public static void GenericClass<T>(T t1) where T : class 
    {
        Console.WriteLine(default(T).ToString());  // CS1720
    }
    public static void Main() {}
}