Подтвердить что ты не робот

Как проверить, является ли String нулевым

Мне интересно, есть ли специальный метод/трюк, чтобы проверить, имеет ли объект String значение null. Я знаю об String.IsNullOrEmpty, но хочу отличить строку null от пустой строки (= "").

Должен ли я просто использовать:

if (s == null) {
    // blah blah...
}

... или есть другой способ?

4b9b3361

Ответ 1

Объект не может быть нулевым - значение выражения может быть нулевым. Это стоит сделать разницу ясными в вашем уме. Значение s не является объектом - это ссылка, которая является либо нулевой, либо относится к объекту.

И да, вы должны просто использовать

if (s == null)

Обратите внимание, что это все равно будет использовать перегруженный == оператор, определенный в строке, но это будет делать правильно.

Ответ 2

Вы можете использовать двойные вопросительные знаки с нулевым объединением для проверки нулей в строке или другом значении типа NULL:

textBox1.Text = s ?? "Is null";

Оператор '??' спрашивает, имеет ли значение 's' значение null, а если не возвращает 's'; если он равен нулю, он возвращает значение справа от оператора.

Подробнее здесь: https://msdn.microsoft.com/en-us/library/ms173224.aspx

А также стоит отметить нуль-условный оператор?. и? [введено в С# 6.0 (и VB) в VS2015

textBox1.Text = customer?.orders?[0].description ?? "n/a";

Это возвращает "n/a", если описание равно null, или если порядок равен NULL, или если клиент имеет значение null, иначе он возвращает значение описания.

Подробнее здесь: https://msdn.microsoft.com/en-us/library/dn986595.aspx

Ответ 3

Конечно, вы должны использовать функцию для проверки null и пустое, как показано ниже:

string str = ...
if (!String.IsNullOrEmpty(str))
{
...
}