#c# #performance
#c# #Производительность
Вопрос:
Есть несколько мест, где вы можете использовать синтаксис индексированного заполнителя в C #, ie.
// Assume some object is available with 2 string properties
Console.Writeline("Hello {0}, today is {1}", obj.Username, obj.DayOfWeek);
Является ли это более эффективным, чем использование оператора конкатенации строк для построения строки? ie.
Console.Writeline("Hello " obj.Username " today is " obj.DayOfWeek);
Очевидно, что {0} ... {n}
синтаксис чище, если вы делаете что-то сложное — но какой код более эффективен (меньший объем памяти и / или время выполнения?)
Ответ №1:
Ну, первая версия должна проанализировать строку и интерпретировать ее, прежде чем выполнять фактическую конкатенацию строк. Таким образом, можно было бы ожидать, что первый метод будет медленнее и потенциально более ресурсоемким, не так ли?
Но если вы не выполняете огромные объемы обработки строк, это вряд ли будет проблемой.
Ответ №2:
Не думайте об этом, используйте форматирующий. Если вы беспокоитесь о памяти / времени выполнения с помощью такого метода, у вас возникают другие проблемы.
Комментарии:
1. Я понимаю, что глупо беспокоиться об этом в контексте одной строки кода, но что, если вам нужно выполнить некоторые строковые операции над миллионами строк?
2. В таком случае используйте
StringBuilder
.