1
class C_SQLSerResLibrary: IEnumerable<KeyValuePair<C_SQLServer, String>>
{
    private Dictionary<C_SQLServer, String> m_dicSQLResLibrary;
    // ...
    public IEnumerator<KeyValuePair<CSQLServer, String>> GetEnumerator()
    {
        return(IEnumerator<KeyValuePair, String>>) m_dicSQLResLibrary. GetEnumerator();
    }
    // ... 
 }

我正在尝试以只读方式在字典上公开 foreach。

目前我收到一个错误 CS0738,告诉我该类没有实现接口成员 System.Collections.IEnumerable.GetEnumerator() 返回类型不匹配。

4

1 回答 1

4

IEnumerable<T>实现IEnumerable非通用接口。它也有一个IEnumerator GetEnumerator()方法,你也必须实现它才能编译。

试试这个

class C_SQLSerResLibrary: IEnumerable<KeyValuePair<C_SQLServer, String>>
{
    private Dictionary<C_SQLServer, String> m_dicSQLResLibrary;
    public IEnumerator<KeyValuePair<CSQLServer, String>> GetEnumerator()
    {
        return m_dicSQLResLibrary.GetEnumerator();
    }
    IEnumerator IEnumerable.GetEnumerator()//you missed this
    {
        return this.GetEnumerator();
    }
 }
于 2013-10-08T15:45:10.717 回答