cil

    12

    2答えて

    現在、私はSystem.Reflection.Emitコードの生成に関する問題に取り組んでいます。私はC#でdefault(SomeType)を使用する場所でCILがどのように放射するかを調べようとしています。 私はVisual Studio 11 Betaから基本的な実験をいくつか実行しました。 JustDecompileは私にdefault(bool)、default(string)に対して次

    21

    3答えて

    BCLの多くのメソッドは、[MethodImpl(MethodImplOptions.InternalCall)]属性でマークされています。 indicates "メソッドが共通言語ランタイム自体の中で実装されている"こと。 このように、実行時に強制される明示的な明示的なCIL命令を持つことでフレームワークを設計する点は何ですか?最終的に、属性はランタイムの契約上の義務を作成していますが、わかりや

    9

    2答えて

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

    0

    1答えて

    私が理解しているところでは、Wikiとthisの質問を使って、マイクロソフトはVC++という独自のコンパイラを持っています。 。他のものは、そして、それが原因(とりわけ)以下の理由により、非常に優れたアプリケーションを作ることができます:それは基本クラスライブラリ と呼ばれるには、それをコンパイルしたときに我々は非常に良いと豊富なlibrayを使用することができます バイトコード(Common I

    5

    1答えて

    Mono.Cecilを使用して注入したCILコードのシーケンスがあります。ただし、変更された.NET C#アプリケーションは実行されません。 目的:、ただし .method private hidebysig static void Main(string[] args) cil managed { .entrypoint .maxstack 5 .locals

    16

    4答えて

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

    7

    1答えて

    私はIL静的解析ツールを書いている、と私はジェネリック型パラメータが参照されている方法を規定する規則の理解に苦労抱えている: (IList<T> interfaceから)このILを取る: .property instance !T Item( int32 index ) { .get instance !0 System.Collections.Generic.IList`1

    6

    2答えて

    文字列は暗黙的にインスタンス化されているので、オブジェクトの参照を取得するためにnewを使用する必要はありません。最初の行があることが表示されますが String first = new String(new char[] {'a'}); string second = "a"; :ので、常にフレームワークは、このの世話をしている、と私はこのような何かをした場合ので、私は同じILになるだろう

    7

    1答えて

    自分の言語用にコンパイラを作っているので、私はReflection.Emitフレームワークを使ってMSILコードを生成しようとしています。ローカル変数を宣言するときにはintを使用するとうまく動作します。しかし、私がまだコンパイルしていない型のローカル変数を宣言したいときは、DeclareLocal()が引数としてTypeを引数に取るので、問題が発生します。それは私のコンパイルされていないクラスで

    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