Проверка нуля и строки. Пусто в C#

Это может звучать как нубский вопрос, но это:

string var;
if (var == null)

а также

string var;
if (var == string.Empty)

Такой же?

дублировать

В чем разница между String.Empty и Null? и в C# я должен использовать String.Empty или Null?

5 ответов

Решение

@Джей это правильно, они не одинаковы. String.IsNullOrEmpty() это удобный метод для проверки как нулевого, так и "".

Нет, они не одинаковы.

string.Empty такой же как "", который является фактическим объектом: строка длиной 0. null значит нет объекта.

Они не одинаковы, реализация String.IsNullOrEmpty(string) в mscorlib демонстрирует это:

public static bool IsNullOrEmpty(string value)
{
    if (value != null)
    {
        return (value.Length == 0);
    }
    return true;
}

Нет, они не. Сначала проверяется, была ли переменная инициализирована или позже было установлено значение "ноль". Второй проверяет, является ли значение переменной "" (пустым). Тем не менее, вы не должны использовать либо. Вместо этого вы должны использовать string.IsNullOrEmpty(var).

Но иногда вы хотите знать, если строка NULL и не важно, что он пустой (в ОО-дизайне). Например, у вас есть метод, и он вернет NULL или string. Вы делаете это, потому что null означает, что операция завершилась неудачно, а пустая строка означает, что результата нет.

В некоторых случаях вы хотите узнать, произошел ли сбой или нет результата, прежде чем предпринимать какие-либо дальнейшие действия с другими объектами.

Другие вопросы по тегам