public static ILSugar CallOrCallvirt(this ILSugar il, Type type, MethodInfo method) { if (method.IsVirtual && !type.IsValueType) { il.Callvirt(method); } else { il.Call(method); } return(il); }