【问题标题】:Why isn't the C# inequality operator !==? [closed]为什么不是 C# 不等式运算符!==? [关闭]
【发布时间】:2011-08-18 15:39:58
【问题描述】:

在 C# 中,== 用于检查相等性,而= 用于赋值。

这是否意味着检查不等式真的应该是!==

为什么不是这样?是因为历史原因吗?

!= 的兴起使其在大多数 SQL 变体中也站稳了脚跟。

【问题讨论】:

  • 这可能应该在programmers.stackexchange.com询问
  • 我认为!= 有点道理(2 个字符,例如==)。由于没有“非赋值”运算符,它也没有真正与任何东西重叠。只是我的意见(因此不是答案)。
  • 你应该问问K&R。但他们可能也抄袭了。
  • 他们使用== 的唯一原因是为了防止赋值运算符出现歧义。在!= 的情况下,没有歧义,那么为什么要强迫程序员使用另一个字符呢?
  • 为什么不/=?这就是 ALGOL 使用的。 K&R 决定使用!=。这只是一个约定。 C++ 基于 C,Java 在某些方面类似于 C,因此它具有相同的运算符,而 C# 在语法上也有一些 C 的根源。

标签: c# operators


【解决方案1】:

C# 受到 Java 和 C/C++ 的很大影响,两者都使用 ==!=。我想他们只是选择坚持现有的主导模式,而不是重新发明轮子。选择另一种语法,比如 === 表示相等,!=== 表示不相等,这对于他们所针对的绝大多数开发人员来说都是一个绊脚石

【讨论】:

  • 是的,我同意保持一致可能是共识,只是想知道是否有人知道这是否是实际原因。
【解决方案2】:

== 只是平等的同义词,!= 只是不平等的同义词。这只是一个代名词!它不是逻辑表达式,因此不需要遵循任何逻辑规则! &=, |=, ^=...

不是那个!!=====.Equals(true),它只是一个名字;)

【讨论】:

    猜你喜欢
    • 2020-10-15
    • 2023-03-31
    • 1970-01-01
    • 2012-05-22
    • 2014-01-14
    • 2013-01-15
    • 2011-02-04
    • 2013-12-04
    相关资源
    最近更新 更多