我从Java进入C#,却无法找到解决以下问题的方法:
我有一个通用的基类:
class MyBase<T> where T : SomeAncestorOfTs
{ ... }
然后几个专业类(A
,B
,C
...)从它派生,如:
class A : MyBase<SomeSpecificT>
{ ... }
现在,在我的代码中的某个地方,我想创建一个Dictionary
的各种后代MyBase
:,例如Dictionary<string,MyBase<>>
,但是不起作用。
除了做以外,C#中还有其他方法Dictionary<String,Object>
吗?
在Java中,这样做很容易实现HashMap<String,MyBase<? extends SomeAncestorOfTs>>
。
UPDATE:T
应该具有一个公共基类(SomeAncestorOfT
)。
不能直接那样做。我的建议是添加另一个非通用基类:
class MyBase
{ ... }
class MyBase<T> : MyBase
{ ... }
然后制作该基数的字典: Dictionary<string,MyBase>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句