获取 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):