你如何在C#中做出"if"stament"什么都不做"?

mis*_*ppy 3 c# if-statement

这是我的代码示例.我需要最后一个if什么都不做,否则做点什么.

if (daPilot.Gas > 0)
    ;
else
    daPilot.failMessage3();
Run Code Online (Sandbox Code Playgroud)

Ser*_*rvy 17

你已经完成了.恭喜.

当然,更不容易混淆的设计只是不是条件,然后有一个if没有else.

  • @ DotN3TDev他没有额外的分号; 他只有一个*必要的*分号,导致他的代码没有错误并完全符合他的要求.他已经做到了.`if`期望后跟一个语句````是一个语句,它什么都不做. (4认同)
  • @DotN3TDev 如果他之前不知道这是一个有效的陈述,那么他会在阅读答案后知道。`;` 和 `{}` 是做同样事情的两种方法;创建一个无操作语句。有些人似乎更喜欢后者,因为这是个人对编码风格的偏好,但仅此而已。浏览答案,我没有看到任何答案实际上“解释”了有关“if”语句语义的任何内容;我只看到一堆“使用此代码”。当然,正如大多数答案所指出的那样,这两种形式的空操作都不是真正好的风格,这使得这在很大程度上没有实际意义。 (2认同)

Blo*_*ard 7

if (daPilot.Gas > 0) 
{
    // nothing
}                        
else
{
    daPilot.failMessage3();
}
Run Code Online (Sandbox Code Playgroud)

或者更简单地说,

if (daPilot.Gas <= 0) 
{        
    daPilot.failMessage3();
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果 `Gas` 是单/双,您的代码将不等于 OP 的代码。我发现编写类似“if(!(x &gt; y))”的内容加上注释以防止人们错误地将其简化为“if(x &lt;= y)”是很常见的。 (2认同)

Jos*_*her 1

反转if

if (daPilot.Gas <= 0) daPilot.failMessage3();