2016-11-08 3 views
-5

Je sais que le n.HasValue && n.Value > 0 mais vraiment curieux de tester la valeur null, donc:Est-il négatif ou positif?

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

est donc objet null positif ou négatif en C#?

+11

Ni l'un ni l'autre. Et le comportement que vous voyez semble le démontrer. – David

+0

ni comme votre test le prouve. – corn3lius

+1

Essayez 'Console.Write (n == 0);' et soyez étonné ... –

Répondre

4

n > 0 se compile en n.HasValue && n.Value > 0, ce qui produit un résultat faux car n.HasValue renvoie la valeur false. Idem pour toute autre condition, car HasValue vient toujours en premier.