C#通用类型-没有从“ T”到“ IMyBaseInterface”的装箱转换或类型参数转换

时间:2018-07-07 17:23:09

标签: c# .net

我的代码结构如下。

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部分(我的界面未实现其他界面)

0 个答案:

没有答案