【发布时间】:2015-04-29 21:09:28
【问题描述】:
在 java 中,如果我有类似的东西,它似乎可以工作,但在 c# 版本中:
public interface MyIterator<T>: IEnumerator<T>
{
BaseClass<T> GetBaseClass();
}
还有:
public interface IBaseClass<T>: IEnumerator<T>{
bool Remove(T e);
IEnumerator<T> Search(T e);
bool Contains(T e);
bool IsEmpty();
int Size();
}
但在实现中我有:
public abstract class BaseClass<T> : IBaseClass<T>
{
public MyIterator<T> Search(T e)
{
..}
它不允许我有不同的返回类型,唯一允许的返回类型是IEnumerator<T>(来自界面)。我知道它有点连线,但这就是在给定上下文中的要求。示例,其他类如:
public class SpecializedContainer<T> : BaseClass<T>
将使用 BaseClass)
【问题讨论】:
-
嗯,您的第一个代码 sn-p 无效 - 您根本没有显示
E和T是什么。我认为它们应该是某处的类型参数,但您没有显示它们...... -
@Jon Both T ..generic type ,我会编辑我的帖子
-
但是您还没有在任何地方将
T声明为类型参数。你的意思是MyIterator<T>? -
是的,抱歉,我不只是复制粘贴代码,我错过了