ASP.NET MVC店面VB端口?特别是LazyList

时间:2008-11-19 12:39:02

标签: asp.net-mvc vb.net model-view-controller

我正在使用Rob Connery优秀的MVC店面作为我的新MVC Web App的松散基础,但我无法将LazyList代码移植到VB.NET(不要问)。

似乎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 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

抱歉,我不知道如何使用VB解决这个问题,但.NET的一个优点是,在运行时,您可以使用使用不同语言构建的程序集。因此,您可以创建一个包含LazyList类的非常简单的C#程序集,并仅引用该程序集。这是.NET支持的跨语言重用的全部要点 - 它可以帮助您免于重新发明轮子!