vb.net有什么好的无OP操作?

时间:2013-02-24 12:47:15

标签: vb.net noop

我们可以在确定它没有做任何其他事情的时候提供突破点。

在c中,那将是while(false);

在vb.net中可以做些什么?

8 个答案:

答案 0 :(得分:11)

如果你总是需要它打破那里你可以放 StopDebugger.Break()

答案 1 :(得分:2)

我的两分钱...

您可以使用冒号将任何一系列命令组合到一行:

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

答案 2 :(得分:1)

非常奇怪的问题,您可以在代码中的任何位置放置BreakPoint。但这里有一些无用的内容:

 Do While False
 Loop

 While False
 End While

即便如下:

 Dim hello = Nothing

或者这个:

 Format("", "")

答案 3 :(得分:1)

如果你真的想要一个No-Op出于某种原因(这可能会成为最无效的单行代码竞赛吗?!),这些怎么样?

System.Threading.Thread.Sleep(1) - 1ms不太可能在循环之外产生巨大影响

Debug.Write("") - 似乎没有输出任何内容。

答案 4 :(得分:1)

这是一个合法的用例。 当在感兴趣的语句之后需要临时断点并且这是if语句中的最后一行时,需要额外的no-op类型语句来放置临时断点。 在这种情况下,我使用:

If someCondition >0 Then

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

返回包含一个空格的字符串,但不将其分配给任何空格。我在VBA中使用它,但在.net

中也支持它

答案 5 :(得分:1)

no-op语句还可以帮助很好地记录代码并使其更易于理解。例如,您可以输入A = A之类的语句。

例如:

如果MyNumber => 100,则A = A
其他:

答案 6 :(得分:1)

我知道这是一个旧查询,但是对于它的价值,我对原始问题的首选解决方案是 Debug.Assert (vbTrue)

如果需要,可以使用变量而不是vbTrue,然后通过更改一个变量来启用/禁用代码中的所有断点

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

只需将bDisableBreakpoints更改为vbFalse,就可以在使用Debug.Assert的任何地方设置断点

答案 7 :(得分:0)

我个人最喜欢的是

dim b=1

然后我在此处放置一个断点。