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

212
03 июня 2017, 13:35

Зачем применять string.Empty, или в чем его отличие от ""? И в том, и в другом случаях результат - пустая строка.

Например:

textBox1.Text = string.Empty;
textBox1.Text = "";

На MSDN про первый вариант сказано :

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

Т.е. то же самое "".
Насколько знаю, Empty используется только со строками, и полностью повторяет "", но ведь зачем-то его в язык ввели. Кто знает зачем?

Answer 1

В .NET2.0+ нет разницы (в плане оптимизации) какой вариант использовать для присваивания и сравнения. Какой считаете более уместным, тот и используйте.

Однако так как string.Empty - это readonly-поле, а "" - это константа, то в некоторых ситуациях можно использовать только "":

  1. В качестве значения по умолчанию параметра метода:

    void Method(string value = string.Empty) { }
    

    приводит к

    Error: Default parameter value for 'value' must be a compile-time constant

  2. В case в switch:

    string str = "";
    switch (str)
    {
        case string.Empty: 
             break;
    }
    

    Error: A constant value is expected.

  3. В параметрах атрибута:

    [XmlRoot(string.Empty)]
    

    Error: An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type

На базе этого и этого ответов.

READ ALSO
Преобразовать массивы в объекты js

Преобразовать массивы в объекты js

Возникла проблемаЕсть массив

353
Промисы, почему не работает условие

Промисы, почему не работает условие

Не совсем понимаю в чем дело, суть такова:

362
Как лучше реализовать такой слайдер?

Как лучше реализовать такой слайдер?

ЗдравствуйтеЕсть такой код слайдера:

385
Как убрать чек бокс знаю только тайтл

Как убрать чек бокс знаю только тайтл

Как убрать чек бокс зная только тайтл при нажатии onclick='deleTe', при условии, что чек бокс уже стоит

371