2

私は逆コンパイラーを使用して、C#でいくつかのライブラリーのソースを取得しました。それが生成した未知の(私には)構成の1つは次のとおりです。

Action action = null;
<>c__DisplayClass9 class2;
action = new Action(class2, (IntPtr) this.<OptimizeVisuals>b__6);

のようなもの<>c__DisplayClass9または(IntPtr) this.<OptimizeVisuals>b__6私はただgrokすることはできません。さらに、この式はC#コンパイラではコンパイルできないため、もっとわかりやすいものを考え出す必要があります。これの一部をグーグルで検索しようとしましたが、運がありませんでした。ヒントを教えてください。匿名のメソッドと関係があるようですが、それが私の推測です。

前もって感謝します。

編集:たぶん私の最初の質問は、私が何を達成する必要があるかについてあまり明確ではありませんでした。強調しておきますが、コンパイル解除前と同じことを行って、前述のコードを通常のC#コードに変換する必要があります。私の仕事は、逆コンパイルしているライブラリ内の特定のものを変更する一方で、他の機能(前述の機能など)をそのまま維持することです。これは私にとって本当に重要なことなので、誰かが私を助けてくれたら本当にありがたいです。

4

1 に答える 1

5

コンパイラは、自動実装されたプロパティ、匿名メソッドなどのいくつかのメンバーを生成します。自分の名前との衝突を防ぐために、コンパイラはC#では無効な名前を使用します(ただし、CLRでは引き続き有効です)。

于 2012-07-18T15:34:21.900 に答える