當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。