为什么 C# 中不使用 !== 作为不等运算符?

4
在C#中,使用==来检查是否相等,而使用=进行赋值。那么,检查不相等应该用!==才对吗?
为什么不是这样呢?是因为历史原因吗?
随着!=的崛起,在大多数SQL变体中也已经得到了确认。

2
这个问题可能应该在 http://programmers.stackexchange.com/ 上问。 - Jeff
3
我认为 != 这个符号有点意义(2个字符,就像 == 一样)。由于没有“非赋值”运算符,它也不会与任何其他东西重叠。这只是我的看法(因此不是答案)。 - Josh Darnell
1
你应该问K&R。但他们可能也是抄袭的。 - H H
1
他们使用==的唯一原因是为了避免与赋值运算符产生歧义。在!=的情况下,没有歧义,为什么要强制程序员使用另一个字符呢? - StriplingWarrior
没有直接关系是使用 ==,也可以使用 <>。 - H H
显示剩余3条评论
2个回答

10

C# 受到 Java 和 C/C++ 的很大影响,它们都使用 ==!=。我想他们只是选择坚持现有的主导模式,而不是重新发明轮子。如果选择另一种语法,比如用 === 表示相等,!== 表示不相等,那将成为他们面向的绝大多数开发人员的绊脚石。


是的,我同意保持一致可能是通过共识来实现的,只是想知道是否有人知道这是真正的原因。 - finoutlook

3

==是等于的同义词,!=是不等于的同义词。它只是一个同义词!它不是逻辑表达式,因此没有必要遵循任何逻辑规则!&=、|=、^=也是一样的。

!!=====.Equals(true)并不意味着true,这只是一个名称;)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接