获取 Visual Basic 行号并在消息框中使用
Get Visual Basic line number and use in messagebox
我一直在寻找我的代码中的错误,我将消息框放在说明“Line xyz value =”等内容中
但是当我更改我的代码时,我总是不得不推送数字,当我完成时找不到它们,或者到处漏掉一个。
只是出于好奇,但是当 JIT 调试器中出现错误标志时,它可以告诉我模块和行号。有谁知道我是否可以获得它,以便随着行号的变化,我的消息框也会发生变化?
这将是一个了不起的帮助。我问的原因是因为我是用AutoCAD编程,没有实时调试的能力
如有任何帮助,我们将不胜感激。
使用 CallerLineNumberAttribute
作为 MsgBox
包装器参数的属性。
Public Shared Module MyFunctions
Public Sub MsgBoxWithLineNumber( msg As String, <CallerFilePath> Optional file As String = Nothing, <CallerLineNumber> Optional lineNumber As Integer = 0)
Dim msg2 As String = msg & vbCrLf & vbCrLf & file & vbCrLf & "Line " & lineNumber
MessageBox.Show( msg2, "Error" )
End Sub
End Module
例如:
Public Sub Foobar()
MsgBoxWithLineNumber( "foobar" )
End Sub
会给你这个消息框:
---------------------------
Hi
---------------------------
hello
C:\Users\Me\AppData\Local\Temp\LINQPad6\_voxwvlsv\sonnkr\LINQPadQuery.vb
Line 81
---------------------------
OK
---------------------------
截图证明(通过Linqpad):
我一直在寻找我的代码中的错误,我将消息框放在说明“Line xyz value =”等内容中
但是当我更改我的代码时,我总是不得不推送数字,当我完成时找不到它们,或者到处漏掉一个。
只是出于好奇,但是当 JIT 调试器中出现错误标志时,它可以告诉我模块和行号。有谁知道我是否可以获得它,以便随着行号的变化,我的消息框也会发生变化?
这将是一个了不起的帮助。我问的原因是因为我是用AutoCAD编程,没有实时调试的能力
如有任何帮助,我们将不胜感激。
使用 CallerLineNumberAttribute
作为 MsgBox
包装器参数的属性。
Public Shared Module MyFunctions
Public Sub MsgBoxWithLineNumber( msg As String, <CallerFilePath> Optional file As String = Nothing, <CallerLineNumber> Optional lineNumber As Integer = 0)
Dim msg2 As String = msg & vbCrLf & vbCrLf & file & vbCrLf & "Line " & lineNumber
MessageBox.Show( msg2, "Error" )
End Sub
End Module
例如:
Public Sub Foobar()
MsgBoxWithLineNumber( "foobar" )
End Sub
会给你这个消息框:
---------------------------
Hi
---------------------------
hello
C:\Users\Me\AppData\Local\Temp\LINQPad6\_voxwvlsv\sonnkr\LINQPadQuery.vb
Line 81
---------------------------
OK
---------------------------
截图证明(通过Linqpad):