1

可能重复:
== 运算符和操作数

可能的重复:
C# 中的 if(a==5) 或 if(5==a) 有什么区别吗?
== 运算符和操作数

好的,这可能是个愚蠢的问题,但在 google 中搜索(即使使用引号也无法实际搜索确切的短语)

如果两者之间有什么区别

if(false == <somecondition>){

if(<somecondition> == false){

在 C# 中?我熟悉 c# 的表达式评估,并且了解如果您正在执行以下操作,顺序将如何有意义:

if(AccountIsInvalid || AccountIsUnregistered)

我不需要大量的课程,但想了解为什么有些人更喜欢用false==....路线做事。

4

4 回答 4

3

就个人而言,我从不将任何事情与虚假或真实进行比较。

我会去:

if (!somecondition) 

或者:

if (somecondition)
于 2009-11-16T22:43:46.553 回答
3

在 C 中,可能会有一些理由这样做,因为您很容易犯错并使用赋值运算符而不是比较运算符,但在 C# 中它不应该有任何区别——您将得到一个编译如果您使用赋值运算符,则会发出警告。如果赋值是不同的类型(比如 int),则会导致错误,因为结果不会是 if 语句的合法表达式。

我希望它是

if (!<somecondition>)
{
  ...
}

而不是与假(或真,就此而言)进行比较。

于 2009-11-16T22:44:39.563 回答
1

在执行任何优化或短路之前,编译器需要解析<somecondition>truefalse值,因此编译器没有理由对表达式进行评估<somecondition> == false以及false == <somecondition>任何不同的评估。

这肯定是风格问题,而且只是风格问题。

于 2009-11-16T22:46:39.483 回答
0

这在 C# 中并不像在 c/c++ 中那样重要,因为条件必须评估为布尔值。

于 2009-11-16T22:44:58.223 回答