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
{
}
Run Code Online (Sandbox Code Playgroud)
我用的时候:
return new Display<IMyClass>(listOffIMyClass, anIntValue);
Run Code Online (Sandbox Code Playgroud)
我收到此错误: IMyClass不能在泛型类型或方法'Display'中用作类型参数'T'.没有从'IMyClass'到'IMyClass'的隐式引用转换.
嗯,是的 - 你已经说过T用于a Display<T>必须实现IDisplay<T>,而IMyClass不是实现IDisplay<IMyClass>.
你真的只是想制造Display<T>工具IDisplay<T>吗?如果是这样,你想要:
public class Display<T> : IDisplay<T> where T : class
Run Code Online (Sandbox Code Playgroud)
现在你仍然在限制T成为一个引用类型,但你并没有限制T实现IDisplay<T>.
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |