我不明白这里发生了什么......
我收到以下错误:
该类型'TestApp.TestVal'
不能用作'T'
泛型类型或方法中的类型参数'TestApp.SomeClass<T>'
。'TestApp.TestVal'
从到没有拳击转换'System.IComparable<TestApp.TestVal>'
。
以下代码会发生此错误:
public enum TestVal
{
First,
Second,
Third
}
public class SomeClass<T>
where T : IComparable<T>
{
public T Stored
{
get
{
return storedval;
}
set
{
storedval = value;
}
}
private T storedval;
}
class Program
{
static void Main(string[] args)
{
//Error is on the next line
SomeClass<TestVal> t = new SomeClass<TestVal>();
}
}
由于 enumint
默认是一个并且 int 实现了IComparable<int>
接口,因此似乎不应该有错误....