2012-03-26 26 views
3

il.EmitCall(OpCodes.Callvirt, getter, null);IL Callvirt等價?

一樣:

il.Emit(OpCodes.Callvirt,getter);

我不知道如何檢查是在飛行中產生的IL,所以......這是第二個相關的問題。

回答

5

是的。

Emit(OpCode, MethodInfo)源開始(後驗證)

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

出於好奇,在計算器上發佈的Microsoft .NET源代碼時有哪些許可意味着什麼呢? – sehe 2012-03-26 06:33:32

+0

你使用了反編譯器,還是查找了框架源代碼?如果前者是哪一個?如果是後者,哪裏是最好的來源?非常感謝您確認我的懷疑 – sgtz 2012-03-26 09:29:36