更新:2007 年 11 月
错误消息
由于类型参数“type parameter”既没有类类型约束,也没有“class”约束,因此不能与“as”运算符一起使用如果某个泛型类型使用了
这是因为 as 运算符能够返回 null(它不可能是值类型的值),并且类型参数必须被视为值类型,除非它是类类型约束或引用类型约束。
示例
下面的示例生成 CS0413。
// CS0413.cs
// compile with: /target:library
class A {}
class B : A {}
class CMain
{
A a = null;
public void G<T>()
{
a = new A();
System.Console.WriteLine (a as T); // CS0413
}
// OK
public void H<T>() where T : A
{
a = new A();
System.Console.WriteLine (a as T);
}
} | |