2009-04-16 3 views
2

Дублированный: Determine the name of the variable used as a parameter to a methodGetting имя параметра передается в метод

Есть ли способ, чтобы получить имя параметра, который был передан в метод, например,

int someParameter = 1; 
Method(someParameter); 

public void Method(int parameter) 
{ 
    // I want the name of 'parameter' which will be 'someParameter'. 
} 
+1

Могу ли я спросить, почему вы хотите знать? Там может быть лучший способ добиться того, чего вы хотите. –

ответ

2

Нет, не существует способа.

За этим последует куча людей, показывающих странные способы выражения лямбда, чтобы изменить сайт вызова и получить имя, но короткий ответ - нет.

6

№ Это только значение , которое передается в качестве аргумента. Весь метод получает целое число. Тот факт, что выражение просто оценивает переменную, неизвестно в отношении вашего метода.

+0

Из интереса (я не вижу причины, не связанные с WTF, чтобы на самом деле это сделать), изменил бы параметр «ref», чтобы это сделать? –

+0

@ Майкл: Нет. По крайней мере, не без какого-то действительно изворотливого небезопасного кода, который смог проверить различные * возможные * переменные и найти тот, у которого было такое же место хранения. Это может быть осуществимо, я не уверен. –

0

Единственный способ, возможно, будет содержать аннотации с сохранением времени выполнения. Но тогда это будет имя аннотации, а не самого параметра. Имя параметра - это просто синтаксический артефакт языка. Он не переносится на скомпилированный результат.

 Смежные вопросы

  • Нет связанных вопросов^_^