小编use*_*603的帖子

从Interface类调用IEnumerator

如果这个问题听起来很愚蠢,我是新来的枚举集合,请原谅.

我上课了

public class PersonStuff : IPersonStuff, IEnumerable<User>
    {
        Person person = new Person();
        ...

        IEnumerator<Person> IEnumerable<Person>.GetEnumerator()
        {
            return (person as IEnumerable<Person>).GetEnumerator();
        }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我在上面实现了两个接口:一个是IPersonStuff,另一个是IEnumerable.

Person类是一个简单的getter/setter,每个类型都是字符串,例如名称,地址除了dateofbirth是DateTime.

在我的IPersonStuff中我有这个:

interface IPersonStuff
    {
        ...
        IEnumerator<Person>  IEnumerable<Person>.GetEnumerator();
    }
Run Code Online (Sandbox Code Playgroud)

一旦工作,我想以下面的方式(从任何类)来调用它:

    IPersonStuff personStuff = new PersonStuff();

    foreach (Person u in personStuff)
    {
        //this loop should iterate thru the elements.
    }
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

  • 'IEnumerable <...>.GetEnumerator':显式接口声明只能在类或结构中声明

基本上我想知道如何通过IPersonStuff接口调用我在PersonStuff类中的IEnumerator IEnumerable.GetEnumerator().

c# generics ienumerator interface

0
推荐指数
1
解决办法
813
查看次数

标签 统计

c# ×1

generics ×1

ienumerator ×1

interface ×1