抽象显式接口实现在C#

我有这个C#代码:

abstract class MyList : IEnumerable<T>
{
    public abstract IEnumerator<T> GetEnumerator();

    //abstract IEnumerator IEnumerable.GetEnumerator();
}

就这样,我得到:

‘Type’ does not implement interface member ‘System.Collections.IEnumerable.GetEnumerator()’.

删除评论,我得到:

The modifier ‘abstract’ is not valid for this item

如何做出明确的实现摘要

最佳答案
有趣 – 我不知道你可以。但是,如果这是您的真实代码,那么您是否希望通过调用通用的GetEnumerator()来实现非通用GetEnumerator()?

我会这样做:

abstract class MyList<T> : IEnumerable<T>
{
    public abstract IEnumerator<T> GetEnumerator();

    IEnumerator IEnumerable.GetEnumerator() 
    {
        return GetEnumerator();
    }
}

这样可以节省您在每个派生类中执行它的细节 – 这无疑将使用相同的实现。

转载注明原文:抽象显式接口实现在C# - 代码日志