我有一个方法,至少有50个局部变量。我需要从字符串值中选择一个变量。是否可以使用C#反射访问局部变量?
修改
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
}
答案 0 :(得分:7)
真实答案,不。
编辑后的OP :确定没有。这些名称在编译时被“丢弃”
你可以通过IL指令(Method.Body)。
使用Cecil Decompiler来“猜测”变量是什么(尽管没有名字)。但是,通常很难区分(重用)临时变量和所有语法糖丢失
另外:像其他评论一样修复你的代码:)