正如您在随附的屏幕截图中看到的,我正在检查 sb 的长度,如果它不为 0,它将执行 Replace 命令。
但是,不知何故,长度为零,它正在执行替换命令并引发异常。但是'_str'中有内容,所以我不明白长度怎么可能为零......
这是 StringBuilder 中的错误吗?
下面是另一个错误,可能与上面的错误有关。你可以看到我注释掉了 Replace 命令,现在它在 ToString() 上失败了。
正如您在随附的屏幕截图中看到的,我正在检查 sb 的长度,如果它不为 0,它将执行 Replace 命令。
但是,不知何故,长度为零,它正在执行替换命令并引发异常。但是'_str'中有内容,所以我不明白长度怎么可能为零......
这是 StringBuilder 中的错误吗?
下面是另一个错误,可能与上面的错误有关。你可以看到我注释掉了 Replace 命令,现在它在 ToString() 上失败了。
你怎么用NSLogWriter
?像这样(见我的博客):
Console.SetOut (new NSLogWriter ());
Console.WriteLine ("we're back in action!");
还是您正在创建(和使用)您自己的实例?例如
var log = new NSLogWriter ();
log.WriteLine ("uho");
如果您使用第二种方式,那么您需要自己处理多线程。例如,另一个日志可能已在检查和调用sb
之间刷新(并清除) 。Length
Replace
System.Console
避免了这种情况,因为它NSLogWriter
被包裹着TextWriter.Synchronized
,例如类似于:
stdout = new NSLogWriter ();
stdout = TextWriter.Synchronized (stdout);