il

    6

    1答えて

    .net。メソッドの最後の命令として存在する可能性のあるOpCodeは何か。私はそれが のRet http://msdn.microsoft.com/en-us/library/system.reflection.emit.opcodes.ret.aspx 投げhttp://msdn.microsoft.com/en-us/library/system.reflection.emit.opcode

    19

    4答えて

    これらのILコードは私がもっと見るものをコードするので、正しく解釈する方法を学ぶのが好きです。 私はので、私は、私はこの一般的なものを学ぶの後、私はかなり残りの世話をすることができると思いますC#コンパイラなどのドキュメントや他のを見つけることができませんでした:以下 は私が必要なものを含むいくつかのサンプルILコードです知っている: サンプル1: .method private hidebysi

    6

    2答えて

    私はLINQPadのいくつかのC#ステートメントを使って、どの中間言語コードが生成されているかを理解しています。 私が最初に次のコードを試してみました: var Container = new {Name = "James"}; Console.WriteLine(Container.Name); を放出されたILの次の6つの行を見た: IL_0001: ldstr "James" IL

    5

    1答えて

    私はSystem.ReflectionとSystem.Reflection.EmitによってILでif-elseを処理しようとしています。オブジェクトのインスタンスに設定されていない オブジェクト参照: Label inequality = new System.Reflection.Emit.Label(); Label equality = new System.Reflection.Emi

    9

    2答えて

    私は、生成された型にある汎用メソッドのMethodInfoを使用するコードをいくつか持っています。反射を避けるために、コードを使用します。 コンパイル時にMethodInfosを生成するパターン。 しかし、methodInfoがジェネリック型に属していて、それ自体がジェネリックメソッドである場合、状況は悪化します。 ここには、単にmethodInfoのオープンバージョンを発行するGMを生成するコー

    6

    2答えて

    私はILを少し見始めましたが、私の試み(以下に示す)が余分なコードをコンパイラの出力から取り除くことが意図しない副作用を持っていれば、 結果についてquesitonのカップル: 元でNOP操作の目的は何ですか? 元のメソッドの最後にあるbr.sの目的は何ですか? 書き換えられたバージョンは不適切ですか? オリジナルC#コード: class Program { public static

    5

    2答えて

    私はC#で作られたpspエミュレータの著者です。 ILGeneratorを使用して、たくさんの "DynamicMethod"を生成しています。アセンブリコードをASTに変換してからILコードを生成し、そのDynamicMethodを構築しています。私は別のスレッドでこれをやっているので、プログラムがスムーズに動くように他のプログラムを実行している間に新しいメソッドを生成することができます。 私の

    7

    3答えて

    次のC#コードがあります。 public void HelloWorld() { Add(2, 2); } public void Add(int a, int b) { //Do something } それは、次のCIL .method public hidebysig instance void HelloWorld() cil managed {

    16

    4答えて

    delegateキーワードはC#で使用する場合、C#コンパイラが自動的System.MulticastDelegateクラスから派生したクラスを生成が含ま生成しました。 このコンパイラ生成されたクラスは、同様に3つのメソッドが含まれています:Invoke, BeginInvoke and EndInvoke。 すべてのこれらの3つの方法がpublic virtual externをマークされている

    8

    1答えて

    ANTLRで.NET用の簡単なDSLを構築し、文字列のスクリプトをダイナミックメソッドに変換することで、少ししか学習しません。私の最初のアイデアはILのopcodeに翻訳されましたが、今はDMの作成のための表現木について読んでいます。私は、ILコードのように、表現木を使って任意の方法を作ることができるようですね? ありがとうございました! コード:https://github.com/ricard