c# - C#中的双重泛型类型
问题描述
我是 C# 新手,很抱歉语法问题,但我无法在任何地方找到答案。我正在尝试使用以下类型架构制作类型
public abstract class MyAbstractType {...}
public class MyFirstType : MyAbstractType {...}
public class MySecondType : MyAbstractType {...}
public abstract class AbstractHeap<T> {...}
public class MyFirstHeap : AbstractHeap<MyFirstType> {...}
public class MySecondHeap : AbstractHeap<MySecondHeap> {...}
public class MetaHeap<T1,T2> : AbstractHeap<T1> where T2 : AbstractHeap<T3> where T3 : MyAbstractType {...}
最后一个定义是给我带来问题的定义。只是我没有意识到的语法问题,还是C#中不允许这种结构?
解决方案
您快到了。此声明中有三个类型参数,但您只在MetaHeap<>
大括号中放置了两个并忘记了T3
。
public class MetaHeap<T1,T2,T3> : AbstractHeap<T1>
where T2 : AbstractHeap<T3>
where T3 : MyAbstractType {...}
推荐阅读
- ruby-on-rails - 为什么这种渲染格式不限制请求?
- mysql - 从三个具有相同 ID 的表中选择
- python - 更改新目录和文件的权限模式
- mysql - 仅在服务器中限制对本地地址的访问
- unity3d - 消耗性 iOS 产品是否需要恢复功能,如果需要,有没有办法在没有服务器的情况下做到这一点?
- c++ - C++ 编译问题,模板参数 2 无效
- c - C将数组初始化为函数内部的指针
- python - 根据列表pyspark的字符串计算包含子字符串的多列中的值
- mongodb - 使用 MongoDB mongo go 驱动程序进行计数器持久收集
- javascript - 如何在javascript中使用EventListener下拉或隐藏和显示子菜单?