英語で読む

次の方法で共有


コンパイラの警告 (レベル 1) CS1720

'generic type' の既定値が Null であるため、式は常に System.NullReferenceException になります

このエラーは、参照型 (クラスなど) であるジェネリック型変数の既定値を含む式を記述すると、発生します。 次のような式があるとします。

C#
default(T).ToString()  

T は参照型であるため、その既定値は null となり、 ToString メソッドを適用しようとすると、 NullReferenceExceptionがスローされます。

T についてのクラス参照制約により、 T は確実に参照型となります。

次の例では 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() {}  
}