我希望下面的代码(来自.Net框架中的Exception类)使用StringBuilder构建一个字符串,然后返回一个builder.ToString()而不是在现有字符串上使用“+”运算符,每次都会创建一个新的字符串。
我希望大家写.Net源代码尽可能遵循最佳实践,因此我想仔细检查这是否仍然是某种最佳
private String ToString(bool needFileLineInfo, bool needMessage) {
String message = (needMessage ? Message : null);
String s;
if (message == null || message.Length <= 0) {
s = GetClassName();
}
else {
s = GetClassName() + ": " + message;
}
if (_innerException!=null) {
s = s + " ---> " + _innerException.ToString(needFileLineInfo, needMessage)
+ Environment.NewLine
+ " "
+ Environment.GetResourceString("Exception_EndOfInnerExceptionStack");
}
string stackTrace = GetStackTrace(needFileLineInfo);
if (stackTrace != null)
{
s += Environment.NewLine + stackTrace;
}
return s;
}