Вопрос по c#, c#-4.0 – Можно ли получить локальные переменные путем отражения? [закрыто]

2

У меня есть метод по крайней мере с 50 локальными переменными. Мне нужно выбрать переменную из строкового значения. Можно ли получить доступ к локальной переменной с помощью отражения C #?

Edit:

void A()
{
    var a1 = List<MyClass>();
    var a2 = List<MyClass>();
    var a3 = List<MyClass>();
    var a4 = List<MyClass>();
    var a5 = List<MyClass>();
    ........................
    ........................
    ........................
    // I have a string value found at runtime. The possible values of it are a1,a2,a3,a4,a5,.... I need to select one
}
Исправь свой код, приятель. Мы не собираемся рассказывать вам, как сделать его еще хуже. Konrad Rudolph
Можете ли вы привести пример своего кода? Возможно, есть лучший способ сделать то, что вы хотите. Rawling
Interestin! не настоящий вопрос. Какие вопросы вы ожидаете, ребята. user960567
"У меня есть метод, по крайней мере, с 50 локальными переменными" ... что-то не совсем верно! Ric
Не можете добавить это как ответ, пока вопрос закрыт, но попробуйте заменить все это наDictionary<string, List<MyClass>>. Rawling

Ваш Ответ

1   ответ
7

Реального ответа нет.

After edited OPОпределенно нет. Названия "отброшены" во время компиляции

Вы можете получить инструкции IL, хотя (Method.Body).

Используйте Cecil Decompiler, чтобы «угадать» какие будут переменные (без имен). Однако, как правило, будет трудно отличить (повторно использовать) временные значения от переменных, и весь синтаксический сахар теряется.

Также: исправьте свой код, как говорят другие комментарии :)

Можете ли вы во время выполнения перейти от местных жителей IL к их текущим значениям?
@Sbi Состояние гонки?
Подождите. Как ты проник в это после того, как вопрос был закрыт?
@sbi: Я думаю, что вы можете опубликовать свой незаконченный ответ через несколько минут после закрытия вопроса, если вы не обновите свой браузер.
@RMartinho: Не без использования недокументированных деталей реализации. смотреть наstuff I did here для способов, в которых детали реализацииcan эксплуатироваться Большое удовольствие. Не рекомендуется

Похожие вопросы