我一直在努力将 .NET 代码转换为 Mono。除此部分外,一切正常:
如您所见,value
是整数。 Mono 说 int 是 List<dynamic>
(查看 b
的值)。然后 if 语句转到 else if 部分,然后在第 129 行抛出异常,因为 int 不能转换为 List。在 .NET 中,else if 部分被正确评估为 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:添加了一个代码片段。
最佳答案
我使用的是 Mono 3.2.8。更新到 Mono 3.10 解决了这个问题。
关于c# - Mono 说 int 是 List<dynamic>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26205393/