🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Compiler Error CS0311 不能将类型“type1”用作泛型类型或 '&lt;name&gt;方法中的类型参数“T”。没有从“type1”到“type2”的隐式引用转换。 在将某一约束应用于泛型类型参数时,必须存在从具体参数到该约束类型的隐式标识或引用转换。 ## 更正此错误 1. 更改要在创建类时使用的参数。 2. 如果您拥有类,则可移除约束或执行某一操作以启用隐式引用或标识转换。例如,可以使第二个类型从第一个类型继承。 ``` // 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** 的转换)不满足泛型类型参数的约束。 ## 请参阅 [类型参数的约束(C# 编程指南)](https://msdn.microsoft.com/zh-cn/library/d5x73970.aspx)