【发布时间】:2012-02-15 10:27:41
【问题描述】:
希望这应该是一个快速的。我有一个这样的 StringBuilder:
StringBuilder sb = new StringBuilder();
我像这样附加到我的 StringBuilder:
sb.Append("Foo");
sb.Append("Bar");
然后我想让它等于一个字符串变量。我这样做是不是这样:
string foobar = sb;
或者像这样:
string foobar = sb.ToString();
是前者懒惰还是后者添加了不必要的代码?
谢谢
【问题讨论】:
-
抱歉,我认为两者都适用相同的原则!
-
懒惰的是你不能两个都试了,结果一个不行-1
-
公平地说,我问是因为我使用的是 StreamWriter 并注意到它可以使用或不使用 .ToString(),我不认为这可能是 StreamWriter 方法的重载
-
我明白了,在这种情况下,打电话时请关闭
ToString()。在最坏的情况下,过载会为您调用它,最好的情况下它可能会进行一些巧妙的优化。但无论哪种方式,语言设计者都为了您的利益添加了重载,所以不妨使用它。 -
您也不能从
StreamWriter隐式转换为string。并且调用.ToString()不会给你作者的内容。
标签: c# stringbuilder