2

我有一个至少有 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
}
4

1 回答 1

7

真正的答案,没有。

编辑 OP 后:确定没有。名称在编译时被“丢弃”

不过,您可以查看 IL 说明(Method.Body)。

使用 Cecil Decompiler 来“猜测”什么是变量(虽然没有名字)。但是,通常很难区分(重用)临时变量和变量,并且所有语法糖都丢失了

另外:像其他评论所说的那样修复你的代码:)

于 2012-06-20T11:03:50.057 回答