更新: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 } } |