什么都没有!= null - 或者是吗?

时间:2010-07-09 12:28:08

标签: c# .net vb.net clr

最近在之前的一个项目中,我发现了VB.NET和C#之间的一个特殊区别。

考虑以下C#表达式:

null <= 2

此表达式的计算结果为 False ,这正是我所期望的。 然后是相应的VB.NET表达式:

Nothing <= 2

我很惊讶地发现这个表达式实际上是评估为 True

这似乎是两种语言之间相当基本的设计决定,它确实让我感到震惊。

有人能告诉我原因吗? 是null和Nothing是一样的吗? 如果是这样,他们为什么表现不同?

1 个答案:

答案 0 :(得分:30)

VB中的

Nothing计算为给定类型的默认值。 (有关详细信息,请参阅this link。)

对于整数比较(编译器将从右手操作数假设),Nothing将为0。出于更明显的原因0 <= 2是正确的: - )