Что такое хорошая операция без OP для vb.net?

Что-то, что мы можем просто поставить точку останова, убедившись, что больше ничего не происходит.

В с, это было бы в то время как (ложь);

Что делать в vb.net?

4 ответа

Решение

Если вам всегда нужно, чтобы сломать там, вы можете положить Stop или же Debugger.Break()

Для этого есть законный вариант использования. Когда после заявления о заинтересованности требуется временная точка останова, а это последняя строка внутри оператора if, для размещения временной точки останова требуется дополнительная инструкция типа no-op. В этом случае я использую:

If someCondition >0 Then

    doSomething
    Space (1)    'Dummy line to place breakpoint
End If

Это возвращает строку, содержащую один пробел, но никому ее не назначает. Я использую его в VBA, но он также поддерживается в.net

Мои два цента...

Вы можете объединить любую серию команд в одну строку с двоеточиями:

If False Then : End If
Select Case False : Case Else : End Select

Я тоже сделал из него подлодку. Затем он получает собственное узнаваемое имя:

'Definition...
Public Sub noop () 'Or Private, Protected, etc.
End Sub

'Usage...
Sub Main()
    If sometest Then
        noop
    Else
        MsgBox "test is false"
    End If
End Sub

Если вы действительно хотите по какой-то причине No-Op (может ли это превратиться в соревнование за самую неэффективную единственную строку кода?!), как насчет этого?

System.Threading.Thread.Sleep(1) - 1 мс вряд ли будет иметь огромное влияние вне цикла

Debug.Write("") - ничего не выводится.

Я знаю, что это старый запрос, но, несмотря на то, что он стоит, я предпочитаю решение исходного вопросаDebug.Assert (vbTrue)

Если вы хотите, вы можете использовать переменную вместо vbTrue, а затем включить / отключить все точки останова в своем коде, изменив одну переменную

Dim bDisableBreakpoints as Boolean: bDisableBreakpoints = vbTrue
'your code here
Debug.Assert (bDisableBreakpoints)
'rest of your code

Просто измените bDisableBreakpoints на vbFalse и точки останова будут установлены везде, где вы использовали Debug.Assert

Оператор no-op также полезен в качестве вспомогательного средства для красивого документирования кода и облегчения его понимания. Вы можете, например, ввести такой оператор, как A = A.

Например:

Если MyNumber => 100, то A = A
Else:

Очень странный вопрос, вы можете разместить BreakPoint где-нибудь в коде. Но вот несколько бесполезных строк:

 Do While False
 Loop

 While False
 End While

Даже следующее:

 Dim hello = Nothing

Или это:

 Format("", "")

Мой личный фаворит -

dim b=1

Затем я поставил там точку останова.

Другие вопросы по тегам