如何在被调用的方法中获取传递的变量的名称?
仅作为附加参数传递?
也许有一些模拟CallerMemberNameAttribute只是为了获取传递的变量的名称?
例如:
var variable = "some_value"; // имя переменной nameof(variable)
DoAction(variable);
public void DoAction(string value)
{
var valueVariableName = ... // хочу получить имя переменной ("variable")
}
如有任何想法,我将不胜感激。
注意:最初它被设想做类似的事情
public void DoAction(string value, [PreviousParameterName] string valueParameterName = null)
{
var valueParameterName = ... // имя переменной (== "variable")
}
但是在弄清了创建自定义属性(在编译时解决)的问题之后,很明显这是不可能做到的。当然,不建议使用反射来解决这个问题(也许它甚至不起作用,我不明白)。