2016-11-08 3 views
-5

Я знаю n.HasValue && n.Value > 0 но на самом деле интересно проверить нулевое значение, так:Является отрицательным или положительным?

decimal? n = null; 
Console.Write(n>0); // false 
Console.Write(n<0); // false 

Так null объект положительным или отрицательным в C#?

+11

Ни то, ни другое. И поведение, которое вы видите, похоже, демонстрирует это. – David

+0

ни как ваш тест доказывает. – corn3lius

+1

Попробуйте 'Console.Write (n == 0);' и поразитесь ... –

ответ

4

n > 0 компилируется в n.HasValue && n.Value > 0, что приводит к ошибке, потому что n.HasValue возвращает false. То же самое для любого другого условия, потому что HasValue всегда на первом месте.

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