Зачем применять 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
На базе этого и этого ответов.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Как убрать чек бокс зная только тайтл при нажатии onclick='deleTe', при условии, что чек бокс уже стоит