我有一个小问题,将一些C#代码转换为VB.NET。我正在使用这个在线博客:http://refactorthis.wordpress.com/2011/05/31/mock-faking-dbcontext-in-entity-framework-4-1-with-a-generic-repository/
在关于在内存IDBSet中创建伪造的部分中,它具有以下代码:
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return _data.GetEnumerator();
}
IEnumerator<T> IEnumerable<T>.GetEnumerator()
{
return _data.GetEnumerator();
}
使用代码转换器呈现以下内容:
Private Function GetEnumerator() As IEnumerator Implements System.Collections.IEnumerable.GetEnumerator
Return _data.GetEnumerator()
End Function
Private Function GetEnumerator() As IEnumerator(Of T) Implements IEnumerable(Of T).GetEnumerator
Return _data.GetEnumerator()
End Function
在我看来这是一个正确的翻译,但DB.Net抱怨以下错误:私有函数GetEnumerator ...和私有函数GetEnumerator ...不能相互重载,因为它们只有返回类型不同。两者都需要实现IDBSet。
有关如何正确转换此代码的任何想法?
答案 0 :(得分:1)
由于它们都是Private
,只需更改其中一个的名称。重要的是它们实现了各自的接口方法。这可行:
Private Function IEnumerator_GetEnumerator() As IEnumerator Implements System.Collections.IEnumerable.GetEnumerator
Return _data.GetEnumerator()
End Function
Private Function GetEnumerator() As IEnumerator(Of T) Implements IEnumerable(Of T).GetEnumerator
Return _data.GetEnumerator()
End Function