我一直在努力将.NET代码转换为Mono。一切都很好,除了这部分:
如您所见,value
是int。 Mono说int是List<dynamic>
(看b
的值)。 if语句然后转到else if部分,然后在第129行抛出异常,因为int不能转换为List。在.NET中,else部分被正确评估为false。有人可以帮忙吗?
这是一个可复制的代码:)
public static StringBuilder JsonValueToString(dynamic value, StringBuilder sb)
{
if (value is JsonObject)
{
return value.BuildString(sb);
}
else if (value is List<dynamic>)
{
var xs = (List<dynamic>) value;
sb.Append("[");
for (int i = 0; i < xs.Count; ++i)
{
if (i > 0) sb.Append(", ");
JsonValueToString(xs[i], sb);
}
sb.Append("]");
}
else
{
sb.Append(value.ToString());
sb.Append(" ");
}
return sb;
}
//编辑:添加了更好的图片。
// EDIT2:添加了一个代码段。
答案 0 :(得分:0)
我使用的是Mono 3.2.8。更新到Mono 3.10解决了这个问题。