2016-11-08 77 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。同任何其他condtion,因为HasValue永远是第一位。