2008-11-19 27 views
2

我使用Rob Connery的优秀MVC店面作为我的新MVC Web应用程序的一个松散基础,但我无法将LazyList代码移植到VB.NET中(请不要问)。ASP.NET MVC店面VB端口?特别是LazyList

似乎VB不允许指定GetEnumerator函数两次,只使用不同的返回类型。有谁知道我会怎样解决这个问题?

感谢

Private Function GetEnumerator() As IEnumerator(Of T) Implements IEnumerable(Of T).GetEnumerator 
    Return Inner.GetEnumerator() 
End Function 

Public Function GetEnumerator() As IEnumerator Implements IList(Of T).GetEnumerator 
    Return DirectCast(Inner, IEnumerable).GetEnumerator() 
End Function 

回答

2

VB.NET允许你为函数指定一个不同于你正在实现的函数的名字。

Public Function GetEnumerator() As IEnumerator(Of T) _ 
    Implements IEnumerable(Of T).GetEnumerator 

    Return Inner.GetEnumerator() 
End Function 

Public Function GetListEnumerator() As IEnumerator _ 
    Implements IList(Of T).GetEnumerator 

    Return DirectCast(Inner, IEnumerable).GetEnumerator() 
End Function 
0

对不起,我不知道怎么去解决这个使用VB,但.NET的优势之一是,在运行时,您可以使用组件使用不同的语言构建。因此,您可以创建一个非常简单的包含LazyList类的C#程序集并引用该程序集。这是.NET支持跨语言重用的重点 - 它可以帮助您避免重蹈覆辙!