一部の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は次のエラーに対応しています。PrivateFunctionGetEnumerator...とPrivateFunctionGetEnumerator ...は、戻り値のタイプのみが異なるため、相互にオーバーロードできません。IDBSetを実装するには、両方が必要です。
このコードを正しく変換する方法について何かアイデアはありますか?