IEnumerator <T> .Current和IEnumerator.Current之间的关系以及IEnumerator <T>实现IDisposable的原因

问题描述

| 我正在实现ICollection ,并且在执行枚举器实现时存在问题。 我了解IEnumerator 必须实现IEnumerator以实现向后兼容(.NET 1.0) 但是,如果我要实现IEnumerator ,则有2个当前属性。 我有两个问题: 他们应该是什么关系?以下代码正确吗?
T IEnumerator<T>.Current 
{ 
    get 
    {
        if (_cursor < 0 || _cursor >= _array.Length)
            throw new InvalidOperationException(\"Iterator position invalid\");
        else 
            return _array[_cursor];
    } 
}


object IEnumerator.Current
{
    get
    {
        return IEnumerator<T>.Current;
    }
}
我收到此错误:非静态字段,方法或属性\'System.Collections.Generic.IEnumerator.Current.get \'需要对象引用 (2)。为什么IEnumerator 必须实现IDisposable。处置是针对非托管资源的,但是在一般情况下,Enumerator将使用非托管资源吗?     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)