为什么.Net中的Exception类的ToString()方法不使用StringBuilder来构建字符串?

时间:2016-08-16 01:51:31

标签: c# string tostring stringbuilder

我希望下面的代码(来自.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;
}

0 个答案:

没有答案