Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 1) CS1720

Wyrażenie zawsze spowoduje wyjątek System.NullReferenceException, ponieważ domyślna wartość typu ogólnego ma wartość null

Jeśli napiszesz wyrażenie obejmujące domyślną zmienną typu ogólnego, która jest typem odwołania (na przykład klasą), ten błąd wystąpi. Rozważ następujące wyrażenie:

C#
default(T).ToString()  

Ponieważ T jest typem odwołania, jego wartość domyślna ma wartość null, a więc próba zastosowania ToString metody spowoduje zgłoszenie NullReferenceExceptionwartości .

Przykład

Ograniczenie odwołania do klasy w typie T gwarantuje, że T jest to typ odwołania.

Poniższy przykład generuje cs1720.

C#
// 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() {}  
}