Как можно получить имя передаваемой переменной в вызываемом методе?
Только передавать дополнительным параметром?
Может есть какой аналог 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")
}
Но после уточнения вопроса создания кастомных аттрибутов (отрабатывающих во время компиляции) стало ясно, что это сделать по-простому невозможно. Естественно, использовать рефлексию для решения данного вопроса нецелесообразно (может даже и не получилось бы, я не разбирался).
DoAction("some_value");что вы ожидаете увидеть в таком случае? – Ev_Hyper Jun 30 '17 at 12:53DoAction(s1 + s2), например. – VladD Jun 30 '17 at 13:42