コンパイラ エラー CS0403

更新 : 2007 年 11 月

エラー メッセージ

Null 非許容の値型である可能性があるため、Null を型パラメータ 'name' に変換できません。default('T') を使用してください。

未知の型に対して、null を代入することはできません。未知の型が null を代入できない値型に解決されることも考えられるためです。ジェネリック クラスで、値型が渡されることを想定していない場合は、クラス型制約を使用してください。組み込み型などの値型を受け取ることのできるジェネリック クラスについては、例に示すように、null の代入部分を default(T) という式で置き換えることができます。

使用例

次の例では CS0403 エラーが生成されます。

// CS0403.cs
// compile with: /target:library
class C<T>
{
   public void f()
   {
      T t = null;  // CS0403
      T t2 = default(T);   // OK
    }
}

class D<T> where T : class 
{
   public void f()
   {
      T t = null;  // OK
    }
}