使用英语阅读

通过


编译器错误 CS0315

不能将类型“valueType”用作泛型类型或方法“TypeorMethod<T>”中的类型参数“T”。 没有从“valueType”到“referenceType”的装箱转换。

将泛型类型约束为特定类,并尝试使用不能隐式装箱到它的值类型构造该类的实例时,会发生此错误。

更正此错误

  1. 一种解决方案是将结构重新定义为类。

示例

下面的示例生成 CS0315:

// cs0315.cs  
public class ClassConstraint { }  
public struct ViolateClassConstraint { }  
  
public class Gen<T> where T : ClassConstraint  
{
}  
public class Test  
{  
    public static int Main()  
    {  
        Gen<ViolateClassConstraint> g = new Gen<ViolateClassConstraint>(); //CS0315  
        return 1;  
    }  
}  

另请参阅