我是新來枚舉集合,所以原諒這個問題聽起來很愚蠢。從接口類調用IEnumerator
我有一個類
public class PersonStuff : IPersonStuff, IEnumerable<User>
{
Person person = new Person();
...
IEnumerator<Person> IEnumerable<Person>.GetEnumerator()
{
return (person as IEnumerable<Person>).GetEnumerator();
}
}
正如你所看到的,我在執行上述兩個接口:一個是IPersonStuff,另一個是IEnumerable的。
Person類是一個簡單的getter/setter,每個類型都是字符串,例如姓名,除Dateofbirth之外的地址即DateTime。
在我IPersonStuff我有這樣的:
interface IPersonStuff
{
...
IEnumerator<Person> IEnumerable<Person>.GetEnumerator();
}
一旦工作,我想它撥打以下方式(從任何類):
IPersonStuff personStuff = new PersonStuff();
foreach (Person u in personStuff)
{
//this loop should iterate thru the elements.
}
但是,我得到的以下錯誤:
- 'IEnumerable < ...>。GetEnumerator':顯式接口聲明只能聲明d在一個類或結構中
基本上我想知道如何通過IPersonStuff接口調用IEnumerator IEnumerable.GetEnumerator()我有PersonStuff類。
你的Person類是否實現IEnumerable(如果是的話,它應該是某種集合)並且名稱不適合。你想用PersonStuff中聲明的GetEnumerator函數來實現什麼? – 2009-09-04 02:09:08
Person類沒有實現IEnumerable,但是PersonStuff做到了。我想枚舉Person對象中的項目。 PersonStuff創建Person對象並使用它。 – user159603 2009-09-04 02:20:31
你描述的實現將迭代多個'Person'對象,而不是單個人內部的項目。如果我誤解了,你是否可以發佈一個你想如何使用IEnumerable實現的例子,如果你能使它工作? – jeremyalan 2009-09-04 22:14:32