【发布时间】:2013-08-23 00:21:37
【问题描述】:
在 C#/Java 中,is 和 instanceof 的运算符优先级导致了一些丑陋的必要括号。例如,您必须写if (!(bar instanceof Foo)),而不是写if (!bar instanceof Foo)。
那么为什么语言团队决定 ! 的运算符优先级高于 is/instanceof?诚然,在 C# 中,您可以覆盖 operator!,这在某些情况下会导致不同的结果,但这些情况似乎非常罕见(并且在任何情况下都不直观),而检查某物是否不是类型或子类型的情况更有可能发生的事情。
【问题讨论】:
-
这不应该在programmers.stackexchange.com结束吗?
-
@Adrian Imo 更适合这里,我在程序员的描述中看不到任何关于语言理论的内容。
标签: c# java language-theory