2010-05-25 5 views
4

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

например.

string a; 

if((a != null) && (a.Length() > 0)) 
{ 
    //do some thing with a 
} 
+0

Где вы узнали о C# .Net? Такого нет. –

ответ

7

Для строк есть

if (String.IsNullOrEmpty(a)) 
+2

Лучше использовать String.IsNullOrEmpty() –

+0

'string' beats' String', потому что вам не нужно нажимать shift, делая вашу клавиатуру дольше, и вы будете менее уставшей, плюс вам не понадобится 'using System;' для версии в нижнем регистре. (шутки, применение и +1 для правильной капитализации при явном доступе к методу статического класса) –

1

Начиная с версии 2.0 вы можете использовать IsNullOrEmpty.

string a; 
... 
if (string.IsNullOrEmpty(a)) ... 
0

строк:

string a; 
if(!String.IsNullOrEmpty(a)) 
{ 
//do something with a 
} 

для определенных типов можно создать метод Удлинитель примечание, что я использовал HasValue вместо IsNullorEmpty, потому что 99% случаев вы должны будете использовать! -оператором если вы используете IsNullOrEmpty, которую я считаю совершенно нечитаемым

public static bool HasValue(this MyType value) 
{ 
//do some testing to see if your specific type is considered filled 
} 
3

вы можете определить метод расширения, чтобы позволить вам сделать это на многих вещах:

static public bool IsNullOrEmpty<T>(this IEnumerable <T>input) 
{ 
    return input == null || input.Count() == 0; 
} 

Он уже существует как статический метод для класса System.String для строк, как указано.

+2

, цитируя John Skeet: Однако вы обязательно должны использовать Any(). Таким образом, нужно проверить только наличие первого элемента. Это будет невероятно дешево для обычных реализаций ICollection , но может быть * намного быстрее, чем Count() для случаев, связанных с сложным запросом. http://danielvaughan.orpius.com/post/IEnumerable-IsNullOrEmpty.aspx –

0

Я считаю, Apache Commons.Lang StringUtils (Java) 's имен намного проще: IsEmpty() проверяет нуль или пустую строку, ISBLANK() проверяет NULL, пустая строка или пробелы только. isNullOrEmpty может быть более описательным, но пустым и null является, в большинстве случаев, вы используете его, то же самое.

Смежные вопросы