Bac*_*ave 2 c# ienumerable ienumerator interface explicit-interface
为什么List定义了这三个方法?
    public Enumerator GetEnumerator()
        => new Enumerator(this);
    IEnumerator<T> IEnumerable<T>.GetEnumerator()
        => new Enumerator(this);
    IEnumerator IEnumerable.GetEnumerator()
        => new Enumerator(this);
Run Code Online (Sandbox Code Playgroud)
他们都在做同样的事情。仅仅拥有这个还不够:
public Enumerator GetEnumerator()
        => new Enumerator(this);
Run Code Online (Sandbox Code Playgroud)
    仅仅拥有这个还不够:
Run Code Online (Sandbox Code Playgroud)public Enumerator GetEnumerator() => new Enumerator(this);
不,它不会,因为它不会实现IEnumerable<T>or IEnumerable,其中GetEnumerator()方法的返回类型为IEnumerator<T>和IEnumerator分别。
返回类型必须匹配才能实现接口。
事实上,自己测试这个很容易:
public Enumerator GetEnumerator()
       => new Enumerator(this);
Run Code Online (Sandbox Code Playgroud)
这给出了以下错误:
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           103 次  |  
        
|   最近记录:  |