更新:2007 年 11 月
错误消息
不能将类型“valueType”用作泛型类型或方法“TypeorMethod<T>”中的类型参数“T”。没有从“valueType”到“referenceType”的装箱转换。如果将泛型类型约束为特定类,并且尝试使用不能隐式装箱到该类的值类型构造该类的实例,则会发生此错误。
更正此错误
一种解决方案是将该结构重新定义为类。
示例
下面的示例生成 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; } } |