2010-08-20 4 views

ответ

7

Эти два точно идентичны после компиляции. Я нахожу string.Empty более удобочитаемым. Насколько нам известно, "" действительно должно иметь что-то внутри, и это просто опечатка.

+1

Кроме того, сложнее определить опечатку типа «», когда вы действительно имели в виду пустую строку «». – Guffa

1

После того как компилятор завершит работу с этим кодом, код IL/machine для обоих фрагментов будет идентичным.

Я стараюсь использовать string.Empty, когда пустая строка является важной частью алгоритма. Я обычно использую "" для значений, которые могут быть чем угодно, но на данный момент это просто пустая строка. Другими словами, используйте ту, которая связывает намерение выражения.

3

Согласно this MSDN blog poststring.Empty более эффективен, так как он не будет производить новый объект.

Here - дополнительная информация, включая краткое сравнение производительности.

+0

Да, но это до .NET 2.0: http://stackoverflow.com/questions/151472/what-is-the-difference-between-string-empty-and ;-) –

+0

Неправильное сообщение в блоге. Строковый литерал создается только один раз, когда сборка загружается (как и строковый объект для свойства String.Empty), выполнение кода, использующего строковый литерал, не создает объект. – Guffa

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