当我进行追踪时,我认为做一些像
这样的事情是有用的//In the main function
{
Log(myVariable);
}
将变量发送到像这样的通用函数
//In the Logger file
public static void TraceMessage<T>(T aVariable)
{
string oldName=GetOldName(aVariable);
}
我想要&#34; myVariable&#34;被分配到oldName
。 GetOldName
应该做什么?
这里有类似的问题:
get name of a variable or parameter
但在所有这些情况下,&#34; aVariable&#34;被分配到oldName
。
更新:旧名称是在将参数/变量发送到函数之前调用的内容。我在这里使用它作为变量只是为了便于解释。 原因是调试。当我的程序收到错误时,我想知道我的变量的值是什么。我目前必须发送Log(错误,变量名,变量值)。当您编写1000个这些Debug语句时,您会想到可以简化这些方法的方法。我要问的是简化问题。
为什么我的问题被投票,我该如何改进这个问题?
答案 0 :(得分:1)
此信息需要由呼叫者捕获并提供。在C#6中,使用function multiRejectExample(){
return new Promise(function (resolve, reject){
if(statement){
console.log('statement 1');
reject(new Error('error'));
return;
}
if(statement){
console.log('statement 2');
reject(new Error('error'));
return;
}
});
}
运算符可以轻松实现,但您需要在调用者代码中应用它:
www.site.com?foo=1 OR 1 = 1 union select * from user_phone where user_phone.id_user = user.id
修改:如果您只想指定一次变量,可以使用:
nameof
并将您的Log(myVariable, nameof(myVariable));
方法定义为:
Log(() => myVariable);
然而,这将比替代方案慢得多,is not guaranteed behaviour。