我正在使用字符串生成器作爲日誌記錄過程的一部分。我使用的分隔符是「」。我怎樣才能以比「」更有效的方式輸出這個字符。.Net:更好地表達「」(空格字符)?
例如:
sb.Append(" ");
還是這本要做到這一點的可以接受的方式?
在此先感謝
我正在使用字符串生成器作爲日誌記錄過程的一部分。我使用的分隔符是「」。我怎樣才能以比「」更有效的方式輸出這個字符。.Net:更好地表達「」(空格字符)?
例如:
sb.Append(" ");
還是這本要做到這一點的可以接受的方式?
在此先感謝
如果你擔心它會創建一個新的字符串每次反對,不要擔心。編譯器將優化它以在每次調用時使用相同的字符串對象。
這是非常好的。
但是,您可能希望提高抽象層次位:
public static StringBuilder AppendWithSeparator(this StringBuilder sb, string value)
{
sb.Append(value);
sb.Append(" ");
return sb;
}
如果是單個字符更好地利用sb.Append(' ');
爲什麼這更好?請參閱Mark Byers關於編譯器優化的回答 – 2010-02-17 09:23:33
@Rob Cowell:這與編譯器優化無關。 'Append(char)'重載不需要檢查空參數或參數長度(總是1)。 – 2010-02-17 09:29:49
您可能認爲""
有替代方案,如string.Empty
。但是沒有這樣的事情,所以使用" "
就可以了。
在某處定義了const char seperator = ' '
可能會更好。然後使用sb.Append(seperator)
這會使代碼更易於維護,如果在稍後您決定使用(例如)逗號分隔。
+1並接受答案。 – 2010-02-17 10:03:37