static int TestDelegate(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 2 && TypeChecker.CheckTypes <System.Action <float>, float>(L, 1))
            {
                System.Action <float> arg0 = (System.Action <float>)ToLua.ToObject(L, 1);
                float arg1 = (float)LuaDLL.lua_tonumber(L, 2);
                TestExportScript.TestDelegate(arg0, arg1);
                return(0);
            }
            else if (count == 2 && TypeChecker.CheckTypes <TestExportScript.CustomDelegate, string>(L, 1))
            {
                TestExportScript.CustomDelegate arg0 = (TestExportScript.CustomDelegate)ToLua.ToObject(L, 1);
                string arg1 = ToLua.ToString(L, 2);
                TestExportScript.TestDelegate(arg0, arg1);
                return(0);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: TestExportScript.TestDelegate"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
 static int set_myDelegate(IntPtr L)
 {
     try
     {
         TestExportScript.CustomDelegate arg0 = (TestExportScript.CustomDelegate)ToLua.CheckDelegate <TestExportScript.CustomDelegate>(L, 2);
         TestExportScript.myDelegate = arg0;
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }