本文整理汇总了C#中LuaTable.IsKeyString方法的典型用法代码示例。如果您正苦于以下问题:C# LuaTable.IsKeyString方法的具体用法?C# LuaTable.IsKeyString怎么用?C# LuaTable.IsKeyString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LuaTable
的用法示例。
在下文中一共展示了LuaTable.IsKeyString方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MsgPackLuaTable
public static bool MsgPackLuaTable(ref LuaTable luatable, ref Packer pker)
{
if (luatable == null)
{
pker = null;
return false;
}
else
{
pker.PackMapHeader(luatable.Count);
}
foreach (var item in luatable)
{
//object key = item.Key;
bool kFlag = luatable.IsKeyString(item.Key);
if (kFlag)
{
pker.PackRawHeader(item.Key.Length);
pker.PackRawBody(System.Text.Encoding.UTF8.GetBytes(item.Key));
}
else
{
pker.Pack(double.Parse(item.Key.ToString()));
}
var valueType = item.Value.GetType();
if (valueType == typeof(String))
{
pker.PackRawHeader(item.Value.ToString().Length);
pker.PackRawBody(System.Text.Encoding.UTF8.GetBytes(item.Value.ToString()));
}
else if (valueType == typeof(LuaTable))
{
LuaTable luaTbl = item.Value as LuaTable;
MsgPackLuaTable(ref luaTbl, ref pker);
}
else if (valueType == typeof(bool))
{
pker.Pack(bool.Parse(item.Value.ToString()));
}
else
{
pker.Pack(double.Parse(item.Value.ToString()));
}
}
return true;
}
示例2: PackLuaTable
/// <summary>
/// 将 Lua table 打包成字符串
/// </summary>
/// <param name="luaTable"></param>
/// <returns></returns>
public static String PackLuaTable(LuaTable luaTable)
{
StringBuilder sb = new StringBuilder();
sb.Append('{');
if (luaTable != null)
{
foreach (var item in luaTable)
{
//拼键
if (luaTable.IsKeyString(item.Key))
sb.Append(EncodeString(item.Key));
else
sb.Append(item.Key);
sb.Append('=');
//拼值
var valueType = item.Value.GetType();
if (valueType == typeof(String))
sb.Append(EncodeString(item.Value as String));
else if (valueType == typeof(LuaTable))
sb.Append(PackLuaTable(item.Value as LuaTable));
else
sb.Append(item.Value.ToString());
sb.Append(',');
}
if (luaTable.Count != 0)//若lua table为空则不删除
sb.Remove(sb.Length - 1, 1);//去掉最后一个逗号
}
sb.Append('}');
return sb.ToString();
}