static int ComplexFunc(RealStatePtr L)
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);


            Tutorial.DrivenClass __cl_gen_to_be_invoked = (Tutorial.DrivenClass)translator.FastGetCSObj(L, 1);


            try {
                {
                    Tutorial.Param1 p1; translator.Get(L, 2, out p1);
                    int             p2 = LuaAPI.xlua_tointeger(L, 3);
                    string          p3;
                    System.Action   luafunc = translator.GetDelegate <System.Action>(L, 4);
                    System.Action   csfunc;

                    double __cl_gen_ret = __cl_gen_to_be_invoked.ComplexFunc(p1, ref p2, out p3, luafunc, out csfunc);
                    LuaAPI.lua_pushnumber(L, __cl_gen_ret);
                    LuaAPI.xlua_pushinteger(L, p2);

                    LuaAPI.lua_pushstring(L, p3);

                    translator.Push(L, csfunc);



                    return(4);
                }
            } catch (System.Exception __gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e));
            }
        }
        static int _m_ComplexFunc(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);


                Tutorial.DrivenClass gen_to_be_invoked = (Tutorial.DrivenClass)translator.FastGetCSObj(L, 1);



                {
                    Tutorial.Param1 _p1; translator.Get(L, 2, out _p1);
                    int             _p2 = LuaAPI.xlua_tointeger(L, 3);
                    string          _p3;
                    System.Action   _luafunc = translator.GetDelegate <System.Action>(L, 4);
                    System.Action   _csfunc;

                    double gen_ret = gen_to_be_invoked.ComplexFunc(_p1, ref _p2, out _p3, _luafunc, out _csfunc);
                    LuaAPI.lua_pushnumber(L, gen_ret);
                    LuaAPI.xlua_pushinteger(L, _p2);

                    LuaAPI.lua_pushstring(L, _p3);

                    translator.Push(L, _csfunc);



                    return(4);
                }
            } catch (System.Exception gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + gen_e));
            }
        }