2012-12-04 41 views
0

我有一個小問題將一些C#代碼轉換爲VB.NET。我與這個網上博客的工作:http://refactorthis.wordpress.com/2011/05/31/mock-faking-dbcontext-in-entity-framework-4-1-with-a-generic-repository/VB.Net代碼轉換問題假IDBSet

在大約在內存中創建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。

關於如何正確轉換此代碼的任何想法?

回答

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 
+0

這就是我最終做的。只是想確保這樣做是正確的。 –