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:
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 .
Ograniczenie odwołania do klasy w typie T
gwarantuje, że T
jest to typ odwołania.
Poniższy przykład generuje cs1720.
// 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() {}
}
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię: