编译器警告(等级 1)CS1720
由于“泛型类型”的默认值为 null,因此表达式总会导致 System.NullReferenceException
如果编写的表达式涉及作为引用类型(例如类)的泛型类型变量的默认值,则会发生此错误。 考虑下面的表达式:
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() {}
}