1

正如您在随附的屏幕截图中看到的,我正在检查 sb 的长度,如果它不为 0,它将执行 Replace 命令。

但是,不知何故,长度为零,它正在执行替换命令并引发异常。但是'_str'中有内容,所以我不明白长度怎么可能为零......

这是 StringBuilder 中的错误吗?

在此处输入图像描述

下面是另一个错误,可能与上面的错误有关。你可以看到我注释掉了 Replace 命令,现在它在 ToString() 上失败了。

在此处输入图像描述

4

1 回答 1

1

你怎么用NSLogWriter?像这样(见我的博客):

Console.SetOut (new NSLogWriter ());
Console.WriteLine ("we're back in action!");

还是您正在创建(和使用)您自己的实例?例如

var log = new NSLogWriter ();
log.WriteLine ("uho");

如果您使用第二种方式,那么您需要自己处理多线程。例如,另一个日志可能已在检查和调用sb之间刷新(并清除) 。LengthReplace

System.Console避免了这种情况,因为它NSLogWriter被包裹着TextWriter.Synchronized,例如类似于:

stdout = new NSLogWriter ();
stdout = TextWriter.Synchronized (stdout);
于 2012-07-28T15:46:41.180 回答