当前位置: 首页>>代码示例>>C#>>正文


C# ILuaState.SetUpvalue方法代码示例

本文整理汇总了C#中ILuaState.SetUpvalue方法的典型用法代码示例。如果您正苦于以下问题:C# ILuaState.SetUpvalue方法的具体用法?C# ILuaState.SetUpvalue怎么用?C# ILuaState.SetUpvalue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ILuaState的用法示例。


在下文中一共展示了ILuaState.SetUpvalue方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: B_LoadFile

 public static int B_LoadFile( ILuaState lua )
 {
     string fname = lua.L_OptString( 1, null );
     string mode  = lua.L_OptString( 2, null );
     bool env = ! lua.IsNone( 3 );
     var status = lua.L_LoadFileX( fname, mode );
     if( status != ThreadStatus.LUA_OK && env )
     {
         lua.PushValue( 3 );
         lua.SetUpvalue( -2, 1 ); // put before error message
         return 2;
     }
     return LoadAux( lua, status );
 }
开发者ID:matthewyang,项目名称:UniLua,代码行数:14,代码来源:LuaBaseLib.cs

示例2: B_Load

        public static int B_Load( ILuaState lua )
        {
            ThreadStatus status;
            int top = lua.GetTop();
            string s = lua.ToString(1);
            string mode = lua.L_OptString(3, "bt");
            if( s != null )
            {
                string chunkName = lua.L_OptString(2, s);
                status = lua.L_LoadBufferX( s, chunkName, mode );
            }
            else // loading from a reader function
            {
                throw new System.NotImplementedException();
            }

            if( status ==  ThreadStatus.LUA_OK && top >= 4 ) // is there an `env' argument
            {
                lua.PushValue(4); // environment for loaded function
                lua.SetUpvalue(-2, 1); // set it as 1st upvalue
            }
            return LoadAux( lua, status );
        }
开发者ID:matthewyang,项目名称:UniLua,代码行数:23,代码来源:LuaBaseLib.cs

示例3: LoadAux

		private static int LoadAux( ILuaState lua, ThreadStatus status, int envidx )
		{
			if( status == ThreadStatus.LUA_OK )
			{
				if( envidx != 0 ) // `env' parameter?
				{
					lua.PushValue(envidx); // push `env' on stack
					if( lua.SetUpvalue(-2, 1) == null ) // set `env' as 1st upvalue of loaded function
					{
						lua.Pop(1); // remove `env' if not used by previous call
					}
				}
				return 1;
			}
			else // error (message is on top of the stack)
			{
				lua.PushNil();
				lua.Insert(-2); // put before error message
				return 2; // return nil plus error message
			}
		}
开发者ID:Jornason,项目名称:UniLua,代码行数:21,代码来源:LuaBaseLib.cs


注:本文中的ILuaState.SetUpvalue方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。