/// <summary>
 ///     Calls a late-bound method on an object, pushing the return value onto the evaluation stack.
 /// </summary>
 public FluentIlGenerator Callvirt(MethodInfo methodInfo, Type[] optionalParameterTypes)
 {
     IlGenerator.EmitCall(OpCodes.Call, methodInfo, optionalParameterTypes);
     return(this);
 }