2012-03-26 13 views
3

が同じil.EmitCall(OpCodes.Callvirt, getter, null);イリノイ州Callvirt同等?

です:il.Emit(OpCodes.Callvirt,getter);

私はオンザフライで生成されたILを検討するかどうかはわかりませんので...これは、第2の関連質問です。

答えて

5

はい。好奇心のうち

Emit(OpCode, MethodInfo)のソースが(検証後)で始まる

if (opcode.Equals(OpCodes.Call) || opcode.Equals(OpCodes.Callvirt) || opcode.Equals(OpCodes.Newobj)) 
{ 
    EmitCall(opcode, meth, null); 
} 
+0

StackOverflowの上のMicrosoft .NETのソースコードを掲載する際に、ライセンスへの影響は何ですか? – sehe

+0

私は弁護士ではありませんが、StackOverflowへの投稿は「開発者がソースコードの内部の仕組みをもっと深く理解する必要がある」と考えています(http://referencesource.microsoft.com/referencesourcelicensing.aspx)しかし、[ライセンス自体](http://referencesource.microsoft.com/netframeworklicense.aspx)では、企業で働く個人に固有の用語が使用されているため、SOがどこに当てはまるかはわかりません。 –

+0

逆コンパイラを使用したか、フレームワークソースを調べましたか?前者の場合は、どちらですか?後者の場合、最良のソースはどこですか?私の疑惑を確認してくれてありがとう – sgtz