ASP.NET MVC Store VB порт? LazyList в частности - PullRequest
2 голосов
/ 19 ноября 2008

Я использую превосходную витрину MVC Роба Коннери в качестве свободной основы для моего нового веб-приложения MVC, но у меня возникают проблемы при переносе кода 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 ]

2 голосов
/ 27 ноября 2008

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 голосов
/ 19 ноября 2008

Извините, я не знаю, как обойти это с помощью VB, но одно из преимуществ .NET заключается в том, что во время выполнения вы можете использовать сборки, построенные на разных языках. Следовательно, вы можете создать очень простую сборку C #, содержащую класс LazyList, и просто ссылаться на эту сборку. В этом весь смысл многоязычного повторного использования, которое позволяет .NET - оно избавляет вас от необходимости изобретать велосипед!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...