这是我想要做的一个例子:
MessageBox.Show("Error line number "+CurrentLineNumber);
Run Code Online (Sandbox Code Playgroud)
当前行号将是此段代码的源代码中的行号.
我怎样才能做到这一点?
我正在寻找一种__LINE__在输出消息中包含编译时常量的方法.
似乎存在各种解决方案,但是__LINE__在JS和__LINE__C#中建议的运行时损失很大.它们通常始终基于运行时对象StackFrame作为log4j.
使用log4j在所需的基础上启用/禁用的可能性也不是一种选择,因为通常在发生错误时,启用行号为时已晚,并且内联代码似乎不再具有任何行号..是否有可能:
1.实际上我确实使用了一个丑陋的黑客:在构建服务器上通过ANT技巧结账后调用自定义预处理器
有没有人对C++ __FUNCTION__宏的C#版本有一个很好的解决方案?编译器似乎不喜欢它.
同样的问题:C#中是否存在__LINE__ __FILE__等价物?
但对于iPad/iPhone SDK Xcode中的Objective-C?这确实有助于我的NSLog语句随着时间的推移更具可读性.
我有一个C++代码,我正在尝试迁移到C#.在那里,在C++上,我使用以下宏定义进行调试.
#define CODE_LOCATION(FILE_NAME, LINE_NUM, FUNC_NAME) LINE_NUM, FILE_NAME, FUNC_NAME
#define __CODE_LOCATION__ CODE_LOCATION(__FILE__, __LINE__, __FUNCTION__)
Run Code Online (Sandbox Code Playgroud)
C#中是否有类似的结构?我知道C#中没有宏,但有没有其他方法可以在执行期间获取当前文件,行和函数值?
我需要通过NLog将日志条目的源代码行号.
请让我知道其他方法.
<<Log entry>> Line 23
<<Log entry>> Line 391
Run Code Online (Sandbox Code Playgroud)
PS-23,391是源代码行号.谢谢
c# ×3
.net ×1
c#-4.0 ×1
ipad ×1
java ×1
line-numbers ×1
logging ×1
macros ×1
nlog ×1
objective-c ×1
portability ×1
wpf ×1
xcode ×1