編譯器警告 (層級 1) CS1720
更新:2007 年 11 月
錯誤訊息
運算式一定會造成 System.NullReferenceException,因為 'generic type' 的預設值為 null
如果您寫入的運算式包含預設泛型型別變數,而這個泛型型別變數是參考型別 (例如類別),便會發生這個錯誤。請參考下列運算式:
default(T).ToString()
由於 T 是參考型別,其預設值為 null,因此嘗試套用 ToString 方法,會產生 NullReferenceException。
範例
在型別 T 上的類別參考條件約束 (Constraint) 會確保 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() {}
}