2014-02-20 3 views
0

Я очень новичок в C# (Я пришел с Java), и у меня есть следующие сомнения.Как проверить, не поле не пустое?

В приложении, на котором я работаю, я нашел нечто подобное в коде:

if (!String.IsNullOrEmpty(u.nome)) 

Этот код просто проверить, если ному поле объекта и не является пустым \ пустой строки.

Хорошо, это очень ясно для меня, но что я могу сделать, чтобы проверить это, если поле не является строкой, но является обычным int?

+0

Это как на Java. if (yourObject! = null) – Heslacher

+0

Что сказал Хеслачер, за исключением того, что 'int' не может быть нулевым, так просто: в любом случае' string.IsNullOrEmpty' является ярлыком и способностью показывать способ проверки для «пустоты» строки. Это эффективно эквивалентно написанию 'u.nome == null || u.nome == string.Empty'. – Luaan

+0

@ Luaan, вот почему я написал yourObject ;-) – Heslacher

ответ

4

int? - целое число, равное нулю. Просто сравните его с нулем

if (u.NullableInt != null) 

или использовать Nullable<T>.HasValue собственность (это дело вкуса, но я нашел этот вариант более читаемый)

if (u.NullableInt.HasValue) 

ПРИМЕЧАНИЕ: Если вы спрашиваете о int, то его value type и он не может иметь значение null. Значение по умолчанию для integer равно 0 (но вы не можете сказать, было ли оно присвоено переменной или нет, поэтому был введен тип с нулевым значением).

0

Вы можете использовать несколько различных типов, но наиболее распространенными являются:

if(someVar != null) 

И если вы пришли из БД, это особенно полезно

if(someVar != DBNull.Value) 
0

int не является -полный тип значения, поэтому он не может быть нулем в любом случае. Но для обнуляемых типов значений (например, int?, bool?) и ссылочных типов (любой класса), вы можете просто сравнить с нулем

if(myObj != null) {....} 
0

Если тип значения, как межды, это будет иметь значение инициализации даже вы не начинайте его. Для инт это 0.

Для ссылочного типа я думаю, что вы можете проверить, как

if(someVar !=null) 

Вы можете увидеть это http://msdn.microsoft.com/en-us/library/4d43ts61(v=vs.90).aspx

0

вы можете проверить с помощью этого механизма

static bool CheckIfNullOrDefault<T>(T value) 
{ 
    return object.Equals(value, default(T)); 
} 

double d = 0; 
CheckIfNullOrDefault(d); // true 
MyClass c = null; 
CheckIfNullOrDefault(c); // true 

Здесь в выше кода вы найдете T ссылочный тип. здесь он сравнивается с нулем, если он имеет некоторое значение say boolean, это значение false, для double Default (T) - 0d, оно проверяется.

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