Я могу реализовать возврат урожая для функций IEnumerable в VB.NET? [дубликат]

Просто для того, чтобы поместить все отличные комментарии в код (и добавить небольшое изменение моего собственного):

Sub PopupBox()
    If MsgBox("Add Comments or Images to Category?", vbYesNo + vbQuestion, "Comment") = vbYes Then
         ActiveWorkbook.Sheets("Comments").Activate
         ActiveWorkbook.Sheets("Comments").Range ("B7")
    End If
End Sub

В большинстве случаев я бы поступил точно так же, как вы, назначив ответ MsbBox для переменная, но в чем-то таком простом я бы не стал беспокоиться о дополнительном коде и просто поместил бы MsgBox прямо в «If».

9
задан Community 23 May 2017 в 12:02
поделиться

4 ответа

В настоящее время на уровне синтаксиса языка нет эквивалента C # return return в VB.Net.

Однако недавно в журнале MSDN Билл Маккарти написал о том, как реализовать аналогичный шаблон в VB.Net 9.0

13
ответ дан 4 December 2019 в 09:14
поделиться

См. Мои ответы здесь:

Подводя итог:
VB.Net не имеет yield, но C # реализует yield путем преобразования вашего кода в конечный автомат за этой сценой. Ключевое слово VB.Net Static также позволяет вам сохранять состояние внутри функции, поэтому теоретически вы должны иметь возможность реализовать класс, который позволяет вам писать аналогичный код при использовании в качестве Static член метода.

2
ответ дан 4 December 2019 в 09:14
поделиться

Нет доходности возврата в VB.NET :( Просто создайте список и верните его.

0
ответ дан 4 December 2019 в 09:14
поделиться

Незаметно для себя компилятор создает класс перечислителя для выполнения этой работы. Поскольку VB.NET не реализует этот шаблон, вы должны создать свою собственную реализацию IEnumerator (Of T)

0
ответ дан 4 December 2019 в 09:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: