更新:2007 年 11 月
错误消息
不能将类型“type1”用作泛型类型或方法“<name>”中的类型参数“T”。没有从“type1”到“type2”的隐式引用转换。在将某一约束应用于泛型类型参数时,必须存在从具体参数到该约束类型的隐式标识或引用转换。
更正此错误
更改要在创建类时使用的参数。
如果您拥有类,则可移除约束或执行某一操作以启用隐式引用或标识转换。例如,可以使第二个类型从第一个类型继承。
示例
复制代码 | |
---|---|
// cs0311.cs class B{} class C{} class Test<T> where T : C { } class Program { static void Main() { Test<B> test = new Test<B>(); //CS0311 } } |
如果在尝试使用值类型参数时发生此错误,您会发现隐式数值转换(例如,从 short 到 int 的转换)不满足泛型类型参数的约束。