Разница между "" (пустая строка) и не является ничем? - PullRequest
3 голосов
/ 02 марта 2020

Я работаю над условием, когда мне нужно проверить, является ли аргумент пустым или нет. Предположим, что аргумент Email. Я должен проверить, является ли внутренний аргумент Email пустым или нет. Я могу сделать это несколькими способами, но я не уверен, какой из них продолжить.

Я думаю проверить следующее утверждение:

1. Email = "", чтобы проверить, является ли электронная почта пустой строкой или нет. 2. Email isNot Nothing

Я хочу знать разницу между этими двумя функциями. Если есть еще функции или аргументы, связанные с проверкой пустой строки, Вы можете написать это тоже.

Спасибо.

Ответы [ 3 ]

5 голосов
/ 02 марта 2020

String является ссылочным типом , что означает, что может иметь нулевую ссылку

Например

string myString = null;

Он также может быть пустым , то есть к нему имеется ссылка , и он имеет длину 0 символов

Например

string myString = "";
// or
string myString = string.Empty;

И просто для полноты, он также может иметь пробел

Например

string myString = "   ";

Вы можете проверить на null вот так

if(myString == null)

Вы можете проверить на пусто

if(myString == "")

// or

if(myString == string.Empty)

Вы можете проверить оба, не null и не пусто

if(myString != null && myString != string.Empty)

Вы можете использовать Null условный оператор с Length, чтобы проверить, что оба не null и не пусто

if(myString?.Length > 0)

Или вы можете использовать встроенные строковые методы, чтобы сделать его немного проще

String.IsNullOrEmpty (String) Метод

Указывает, является ли указанная строка пустой или пустой ("").

if(string.IsNullOrEmpty(myString))

String.IsNullOrWhiteSpace (String) Метод

Указывает, является ли указанная строка пустой, пустой или состоит только из пробелов.

if(string.IsNullOrWhiteSpace(myString))

Примечание : Стоит отметить, что IsNullOrWhiteSpace обычно более устойчив при проверке пользовательского ввода

2 голосов
/ 02 марта 2020

Фактически в C# string.Empty эквивалентно "". См. String.Empty

Лучший способ проверить строки Empty или Null:

string.IsNullOrEmpty(Email) или вы можете использовать string.IsNullOrWhiteSpace(Email) для дополнительной проверки для пробелов.

if(!string.IsNullOrEmpty(Email))
{
    // Good to proceed....
}
1 голос
/ 02 марта 2020

Вы не должны использовать IsNot ничего с переменной ссылочного типа. Вместо этого используйте string.IsNullOrEmpty (Email) вместе с String.IsNullOrWhiteSpace (Email), в то время как вам необходимо проверить электронную почту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...