public class Display<T> where T : class, IDisplay<T>
{
public List<T> MyList { get; set; }
public int Total { get; set; }
public Display(List<T> myList, int total)
{
MyList = myList;
Total = total;
}
}
public interface IDisplay<T> where T : class
{
List<T> MyList { get; set; }
int Total { get; set; }
}
MyClass() : IMyClass
{
}
public interface IMyClass
{
}
当我使用时:
return new Display<IMyClass>(listOffIMyClass, anIntValue);
我收到此错误: IMyClass不能在泛型类型或方法“Display”中用作类型参数“T”。 没有从'IMyClass'到'IMyClass'的隐式引用转换。
答案 0 :(得分:7)
嗯,是的 - 你说过用T
的{{1}}必须实现Display<T>
,IDisplay<T>
没有实现IMyClass
您实际只是想让IDisplay<IMyClass>
实施Display<T>
吗?如果是这样,你想要:
IDisplay<T>
现在,您仍然将public class Display<T> : IDisplay<T> where T : class
限制为引用类型,但您 约束T
来实施T
。