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()返回类型不匹配。
答案 0 :(得分: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();
}
}