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”的隐式引用转换。
最佳答案
好吧,是的-您已经说过,用于T
的Display<T>
必须实现IDisplay<T>
,而IMyClass
不实现IDisplay<IMyClass>
。
您实际上是否只是想让Display<T>
实现IDisplay<T>
?如果是这样,您要:
public class Display<T> : IDisplay<T> where T : class
现在,您仍然将
T
约束为引用类型,但没有约束T
来实现IDisplay<T>
。关于c# - 返回一个通用的隐式引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13640996/