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


C# LuaTable.IsArray方法代码示例

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


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

示例1: BitwiseOr

        public object BitwiseOr(LuaTable table)
        {
            // First of all, check it's actually an array
            int size;
            if (!table.IsArray(out size) || size == 0)
            {
                throw new InvalidOperationException("Specified table is not an array");
            }

            // Get the length
            int result = -1;
            Type type = null;

            // Create the array
            foreach (object key in table.Keys)
            {
                if (result < 0)
                {
                    result = (int)table[key];
                    type = table[key].GetType();
                    continue;
                }
                result |= (int)table[key];
            }

            // Return it
            return Enum.ToObject(type, result);
        }
开发者ID:OlympusServers,项目名称:Oxide,代码行数:28,代码来源:LuaUtil.cs

示例2: TableToArray

        public object[] TableToArray(LuaTable table)
        {
            // First of all, check it's actually an array
            int size;
            if (!table.IsArray(out size))
            {
                throw new InvalidOperationException("Specified table is not an array");
            }

            // Get the length
            var arr = new object[size];

            // Create the array
            foreach (var key in table.Keys)
            {
                var index = Convert.ToInt32(key) - 1;
                arr[index] = table[key];
            }

            // Return it
            return arr;
        }
开发者ID:yas-online,项目名称:Oxide,代码行数:22,代码来源:LuaUtil.cs

示例3: SpecializeType

 public Type SpecializeType(Type baseType, LuaTable argTable)
 {
     int cnt;
     if (!argTable.IsArray(out cnt)) throw new ArgumentException("Table is not an array", "argTable");
     Type[] typeArgs = new Type[cnt];
     for (int i = 0; i < cnt; i++)
     {
         object obj = argTable[i + 1];
         if (obj is LuaTable) obj = (obj as LuaTable)["_type"];
         if (!(obj is Type)) throw new ArgumentException("Item in table is not a Type", $"argTable[{i + 1}]");
         typeArgs[i] = obj as Type;
     }
     return baseType.MakeGenericType(typeArgs);
 }
开发者ID:romgerman,项目名称:Oxide,代码行数:14,代码来源:LuaUtil.cs


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