Эквивалентность IL Callvirt? - PullRequest
       11

Эквивалентность IL Callvirt?

3 голосов
/ 26 марта 2012

Это il.EmitCall(OpCodes.Callvirt, getter, null);

так же, как:

до il.Emit(OpCodes.Callvirt,getter);

Я не уверен, как проверить IL, который генерируется на лету,так что ... это второй связанный вопрос.

1 Ответ

5 голосов
/ 26 марта 2012

Да.

Источник для Emit(OpCode, MethodInfo) начинается с (после проверки)

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