2011-05-02 2 views
0

Есть несколько мест, где вы можете использовать индексированный синтаксис заполнителя в C#, т.е.Эффективность индексированных заполнителей

// Assume some object is available with 2 string properties 
Console.Writeline("Hello {0}, today is {1}", obj.Username, obj.DayOfWeek); 

Это более эффективно, чем использование оператора конкатенации строк для построения строки? то есть.

Console.Writeline("Hello " + obj.Username + " today is " + obj.DayOfWeek); 

Очевидно, что синтаксис {0} ... {n} чист, если вы делаете что-то сложное - но какой код является более эффективным

ответ

1

Ну первая версия имеет для разбора (нижнее объем памяти и время выполнения или?) string и интерпретировать его, прежде чем выполнять фактическую конкатенацию строк. Таким образом, можно было бы ожидать, что первый метод будет медленнее и потенциально более интенсивным с точки зрения памяти, нет?

Но если вы не делаете огромное количество обработки строк, это вряд ли будет проблемой.

1

Не думайте об этом, используйте форматирование. Если вы беспокоитесь о времени памяти/времени с таким методом, у вас есть другие проблемы.

+0

Я понимаю, что глупо беспокоиться об этом в контексте одной строки кода, но что делать, если вам нужно выполнить некоторые строковые операции над миллионами строк? – debracey

+2

В этом случае используйте 'StringBuilder'. – Femaref

Смежные вопросы