Более простой способ написания нулевого или пустого? - PullRequest
21 голосов
/ 02 октября 2011

Я уверен, что что-то здесь упустил. В определенном проекте мне нужно проверить, является ли строка пустой или нулевой.

Есть ли более простой способ написать это?

if(myString == "" || myString == null)
{
   ...

Ответы [ 5 ]

37 голосов
/ 02 октября 2011

Да, для этого уже есть вспомогательный метод String.IsNullOrEmpty:

if (String.IsNullOrEmpty(myString)) {
    ...
}
5 голосов
/ 02 октября 2011
if (string.IsNullOrEmpty(myString)) {
  ...
}

Или вы можете воспользоваться преимуществами методов расширения, они позволяют this быть нулевым:

static class Extensions {
    public static bool IsEmpty(this string s) {
        return string.IsNullOrEmpty(s);
    }
}

, который затем позволяет написать:

if (myString.IsEmpty()) {
  ...
}

Хотя вам, вероятно, следует выбрать другое имя, чем «пусто».

0 голосов
/ 21 ноября 2016

Чтобы избежать нулевых проверок, вы можете использовать ??operator.

var result = value ?? "";

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

JoinStrings(value1 ?? "", value2 ?? "")

Также его можно использовать для предотвращения нежелательного форматирования.

string ToString()
{
    return "[" + (value1 ?? 0.0) + ", " + (value2 ?? 0.0) + "]";
}

Это также можно использовать в операторах if, это не так приятно, но иногда может быть удобно.

if (value ?? "" != "") // Not the best example.
{
}
0 голосов
/ 19 мая 2015

// если строка не определена как ноль, то IsNullOrEmpty работает отлично, но если строка определена как ноль, то trim выдает исключение.

if(string.IsNullOrEmpty(myString.Trim()){
 ...
}

// вы можете использовать IsNullOrWhiteSpace , которые хорошо работают для нескольких пробелов в строке. То есть возвращают true для нескольких пробелов

 if(string.IsNullOrWhiteSpace (myString.Trim()){
     ...
    }
0 голосов
/ 02 октября 2011

Если вы используете .NET 4, вы можете использовать

if(string.IsNullOrWhiteSpace(myString)){

}

еще:

if(string.IsNullOrEmpty(myString)){

}
...