Предупреждение компилятора (уровень 1) CS1720
Выражение всегда будет вызывать System.NullReferenceException, поскольку значение "универсальный_тип" по умолчанию равно null
Если вы записали выражение с переменной универсального типа, имеющей значение по умолчанию, которая является ссылочным типом (например, класс), возникнет эта ошибка. Рассмотрим следующее выражение:
default(T).ToString()
Так как T
является ссылочным типом, его значение по умолчанию равно null, и поэтому попытка применить к нему метод ToString вызовет NullReferenceException.
Ограничение ссылки на класс для типа T
гарантирует, что T
является ссылочным типом.
При компиляции следующего примера будет выдано предупреждение 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() {}
}
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: