我们可以设置断点,同时确保它不会做任何其他事情。
在c中,这将是while(false(;
在vb.net中做什么?
如果你总是需要它来打破它,你可以放Stop
或Debugger.Break()
如果你真的出于某种原因想要一个无操作(这会变成一场争夺最无效的单行代码的比赛吗?!(,这些怎么样?
System.Threading.Thread.Sleep(1)
-1ms不太可能在环路之外产生巨大影响
Debug.Write("")
-似乎没有输出任何内容。
这是一个合法的用例。如果在感兴趣的语句之后需要一个临时断点,并且这是if语句中的最后一行,则需要额外的无操作类型语句来放置临时断点。在这种情况下,我使用:
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
非常奇怪的问题,您可以在代码中的任何位置放置断点。但这里有一些无用的线路:
Do While False
Loop
While False
End While
甚至以下内容:
Dim hello = Nothing
或者这个:
Format("", "")
no-op语句也有助于很好地记录代码并使其更易于理解。例如,你可以输入一个类似a=a.的语句
例如:
如果MyNumber=>100,则A=A
其他:
我知道这是一个旧查询,但就其价值而言,我对原始问题的首选解决方案是Debug.Assert (vbTrue)
如果您愿意,您可以使用一个变量而不是vbTrue,然后通过更改一个变量来启用/禁用代码中的所有断点
Dim bDisableBreakpoints as Boolean: bDisableBreakpoints = vbTrue
'your code here
Debug.Assert (bDisableBreakpoints)
'rest of your code
只需将bDisableBreakpoints更改为vbFalse
,断点就会设置在您使用Debug.Assert 的任何位置
我个人最喜欢的是
dim b=1
然后我在那里放了一个断点。