我的代码结构如下。
public interface IMyBaseInterface
{
}
public interface IMySubInterface : IMyBaseInterface
{
}
public abstract class BaseClass<T>
where T : IMyBaseInterface, new()
{
}
public class SubBaseClass<T> :
BaseClass<T> where T : IMySubInterface , new()
{
}
但是我遇到此错误。
CS0314类型'T'不能用作设备中的类型参数'T' 泛型类型或方法'BaseClass
'。没有拳击 转换或类型参数从“ T”转换为 “ IMyBaseInterface”
我可以像这样轻松添加其他约束,并且错误已修复。
public class SubBaseClass<T> : BaseClass<T>
where T : IMySubInterface, IMyBaseInterface, new()
{
}
但是不是隐式暗示如果我说模板类型将是{/ 1 /}继承/实现(“:”符号),它也将实现IMySubInterface
吗?
编辑:我意识到我刚刚错过了IMyBaseInterface
部分(我的界面未实现其他界面)