代码之家  ›  专栏  ›  技术社区  ›  Gavin Osborn

没有什么!=空-还是?

  •  14
  • Gavin Osborn  · 技术社区  · 14 年前

    最近在上一个项目中,我遇到了vb.net和c_之间的一个特殊区别。

    考虑以下c表达式:

    null <= 2
    

    此表达式的计算结果为 这就是我所期望的。 然后是相应的vb.net表达式:

    Nothing <= 2
    

    我很惊讶地发现这个表达式的计算结果

    这似乎是两种语言之间的一个相当基本的设计决策,它确实让我着迷。

    有人能告诉我为什么吗? 是空的,没有一样的吗? 如果是这样,他们为什么表现得不一样?

    1 回复  |  直到 14 年前
        1
  •  30
  •   Dan Puzey    14 年前

    Nothing 在VB中,计算为给定类型的默认值。(见 this link 详情。

    对于整数比较(编译器将从右边的操作数中进行假设), 没有什么 将因此 0 . 0 <= 2 更明显的原因是正确的:—)