public TResult Func <TResult>() where TResult : class { Call call = Call.Begin(); if (pushSelf) { call.PushObject(anonObj); } virtualMachine.Execute(methodId, ref call, extraArgNum); return((TResult)call.GetObject()); }
public TResult Func <T1, TResult>(T1 p1) where T1 : class where TResult : class { Call call = Call.Begin(); if (pushSelf) { call.PushObject(anonObj); } call.PushObject(p1); virtualMachine.Execute(methodId, ref call, 1 + extraArgNum); //从栈上获取结果 return((TResult)call.GetObject()); }
public TResult Func <T1, T2, T3, TResult>(T1 p1, T2 p2, T3 p3) where T1 : class where T2 : class where T3 : class where TResult : class { Call call = Call.Begin(); if (pushSelf) { call.PushObject(anonObj); } call.PushObject(p1); call.PushObject(p2); call.PushObject(p3); virtualMachine.Execute(methodId, ref call, 3 + extraArgNum); return((TResult)call.GetObject()); }