Страницы

Поиск по вопросам

четверг, 4 октября 2018 г.

Применение string.Empty

Зачем применять string.Empty, или в чем его отличие от ""? И в том, и в другом случаях результат - пустая строка.
Например:
textBox1.Text = string.Empty; textBox1.Text = "";
На MSDN про первый вариант сказано :
Значением данного поля является строка нулевой длины, "".
Т.е. то же самое "" Насколько знаю, Empty используется только со строками, и полностью повторяет "", но ведь зачем-то его в язык ввели. Кто знает зачем?


Ответ

В .NET2.0+ нет разницы (в плане оптимизации) какой вариант использовать для присваивания и сравнения. Какой считаете более уместным, тот и используйте.
Однако так как string.Empty - это readonly-поле, а "" - это константа, то в некоторых ситуациях можно использовать только ""
В качестве значения по умолчанию параметра метода:
void Method(string value = string.Empty) { }
приводит к
Error: Default parameter value for 'value' must be a compile-time constant В case в switch
string str = ""; switch (str) { case string.Empty: break; }
Error: A constant value is expected. В параметрах атрибута:
[XmlRoot(string.Empty)]
Error: An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type
На базе этого и этого ответов.

Комментариев нет:

Отправить комментарий