我在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