对函数的任何调用只能在debug中编译

时间:2016-08-16 17:19:40

标签: vb.net debugging compilation

Debug类非常有用,因为它允许编写调试代码而不需要在发布时删除它,因为任何涉及该类的调用都不会被编译。

如何创建自己的自定义模块或类?例如,我写了这个:

Module MyDebug

    Sub print(ByVal msg As String)

        Debug.Print(Now.ToString("yyyy-MM-dd HH:mm:ss.fff") & " " & msg)

    End Sub
End Module

我能找到的唯一解决方案就是使用宏,但这似乎很荒谬,因为我必须写下这样的内容:

#If DEBUG
MyDebug.Print("...")
#endif

如果我使用Debug.Print("..."),我需要在代码中调试每个点,而不是单线程。

1 个答案:

答案 0 :(得分:2)

您希望使用<Conditional>属性标记方法。

Module MyDebug

    <Conditional("DEBUG")>
    Sub Print(ByVal msg As String)
        Debug.Print(Now.ToString("yyyy-MM-dd HH:mm:ss.fff") & " " & msg)
    End Sub
End Module

MSDN ConditionalAttribute

Reference Source for Debug class that uses the attribute