c# - String Interpolation vs String.Format




performance resharper (2)

使用字符串插值之間是否存在顯著的性能差異:

myString += $"{x:x2}";

vs String.Format()?

myString += String.Format("{0:x2}", x);

我只是問,因為Resharper正在提示修復,我之前被愚弄了。


值得注意的是相對的。 但是:字符串插值在編譯時變為 string.Format() ,因此它們應該以相同的結果結束。

但是有一些細微的差別:正如我們可以從 this 問題中看出的那樣,格式說明符中的字符串連接會導致額外的 string.Concat() 調用。


字符串插值在編譯時變為string.Format()。

同樣在string.Format中,您可以為單個參數指定多個輸出,為單個參數指定不同的輸出格式。 但我認為字符串插值更具可讀性。 所以,這取決於你。

a = string.Format("Due date is {0:M/d/yy} at {0:h:mm}", someComplexObject.someObject.someProperty);

b = $"Due date is {someComplexObject.someObject.someProperty:M/d/yy} at {someComplexObject.someObject.someProperty:h:mm}";

有一些 性能 測試結果 https://koukia.ca/string-interpolation-vs-string-format-string-concat-and-string-builder-performance-benchmarks-c1dad38032a







string-interpolation