我是新来枚举集合,所以原谅这个问题听起来很愚蠢。从接口类调用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