我在c#中有一个泛型接口,并且几乎总是使用它的一种类型。我想为该类型创建一个非通用接口并使用它。非泛型接口作为泛型接口的同义词
比方说,我有以下代码:
public interface IMyGenericList<out T> where T : IItem
{
IEnumerable<T> GetList();
}
public class MyList<T> : IMyGenericList<T> where T : IItem
{
public IEnumerable<T> GetList()
{
return null;
}
}
它工作得很好。大多数时候,我需要IMyGenericList<IItem>
,所以我尝试以下方法:
public interface IMyItemsList : IMyGenericList<IItem>
{
}
,但我不能让MYLIST实施IMyItemsList出于某种原因。以下代码返回错误
public class MyList<T> : IMyItemsList, IMyGenericList<T> where T : IItem
{
public IEnumerable<T> GetList()
{
return null;
}
}
说的是IEnumerable<IItem> is not implemented
。
这是为什么/我该怎么办? 谢谢。
好的,多亏了你的回答,我想到了不可能完全按照我最初的想法去做。我将发布关于为什么这是不可能的另一个问题:) 这就是:One function implementing Generic and non-generic interface
您的'GetEnumerator'方法在哪里? – leppie 2010-10-27 09:01:52
我没有实现IEnumerable,我只是返回一个具有该类型的值 – Shaddix 2010-10-27 09:08:00
“大多数时候我需要'IMyGenericList'”。由于您的类型限制,您只能这样做。 –
2010-10-27 12:43:58