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 に答える