我们可以在确保它不做任何其他事情的同时设置断点。
在 c 中,这将是 while(false);
在 vb.net 中做什么?
如果你总是需要它在那里打破你可以放
Stop
或Debugger.Break()
我的两分钱...
您可以使用冒号将任何一系列命令组合到一行中:
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
有一个合法的用例。当感兴趣的语句之后需要一个临时断点并且这是 if 语句中的最后一行时,需要一个额外的 no-op 类型语句来放置临时断点。在这种情况下,我使用:
If someCondition >0 Then
doSomething
Space (1) 'Dummy line to place breakpoint
End If
这将返回一个包含一个空格的字符串,但不会将其分配给任何内容。我在 VBA 中使用它,但在 .net 中也支持它
如果您出于某种原因真的想要 No-Op (这会变成最无效的单行代码的竞赛吗?!),这些怎么样?
System.Threading.Thread.Sleep(1)
- 1ms 不太可能在循环之外产生巨大影响
Debug.Write("")
- 似乎没有输出任何东西。
非常奇怪的问题,您可以在代码中的任何位置放置一个断点。但这里有一些无用的行:
Do While False
Loop
While False
End While
甚至以下:
Dim hello = Nothing
或这个 :
Format("", "")
我知道这是一个旧查询,但是对于它的价值,我对原始问题的首选解决方案是
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
否则:
我个人最喜欢的是
dim b=1
然后我在那里放了一个断点。