不是我第一次写
log1(613,"msg");
log1(614,"msg");
__LINE__
c++在www.cprogramming.com
和c++ logging function中有一个很酷的东西
,是否有一个简单的解决方案可以让 c# 准确记录正在执行的行?
不是我第一次写
log1(613,"msg");
log1(614,"msg");
__LINE__
c++在www.cprogramming.com
和c++ logging function中有一个很酷的东西
,是否有一个简单的解决方案可以让 c# 准确记录正在执行的行?
容易地!您需要使用“magic”属性
[CallerLineNumber]
,它强制编译器替换行号。例如,像这样:
使用示例:
在你的情况下,我会
log1
像这样声明函数:并且会打电话
其他魔法属性是:(
[CallerMemberName]
对于实现非常有用INotifyPropertyChanged
!)和[CallerFilePath]
。因为 .Net 4 需要属性才能正常工作
[CallerLineNumber]
,我想指出还有其他解决方案,包括反射。缺乏反射——如果解决方案不是调试(没有调试信息)那么就没有文件名,也没有行号。如果有混淆,那么这种方法根本没有意义。取自en so