更新:2007 年 11 月

错误消息

无法将 null 转换为类型参数“name”,因为它可能是不可以为 null 的值类型。请考虑改用 default('T')。

给指定的未知类型的赋值不能为空,因为它可能是一个不允许空赋值的值类型。如果您的泛型类不用来接受值类型,请使用类类型约束。如果它可以接受值类型(例如内置类型),您也许能够用表达式 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
    }
}