Интерполяция строк vs строка.Формат
есть ли заметная разница в производительности между использованием Строковой интерполяции:
myString += $"{x:x2}";
vs строка.Format()?
myString += String.Format("{0:x2}", x);
Я спрашиваю только потому, что Resharper подсказывает исправление, и меня обманули раньше.
2 ответов
заметно относительно. Однако: интерполяция строк превращается в string.Format()
во время компиляции, поэтому они должны получить тот же результат.
есть тонкие различия, хотя: как мы можем сказать из этой вопрос, конкатенация строк в спецификаторе формата приводит к дополнительному string.Concat()
звонок.
строковая интерполяция превращается в строку.Формат() во время компиляции.
и в строке.Формат можно указать несколько выходов для одного аргумента и различные форматы вывода для одного аргумента. Но интерполяция строк более читабельна, я думаю. Так что решать тебе.
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