コンパイラ エラー 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
}
}