C#如果没有正确的"什么都不做"的语法

JOb*_*loh 0 c# syntax

我对编程很新,在我最近的工作中,我创建了以下if if语句嵌套在for循环中:

for (int i = 0; i < originalColumnCells.Count; i++)
{
    if (originalColumnCells[i] == sortedColumnCells[i])
    {
        // Do Nothing
    }
    else
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

在if语句中,正如您所看到的,如果语句为true,我希望该方法不执行任何操作.在这种情况下,是否正确的语法来注释掉"// Do Nothing",还是应该将它作为开放和封闭的括号?或者也许把括号放在if行的末尾?

任何有关"正确"处理此方法的建议都将受到赞赏

Bau*_*uss 9

为什么不否定表达?

for (int i = 0; i < originalColumnCells.Count; i++)
{
    if (originalColumnCells[i] != sortedColumnCells[i])
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 6

将 if 语句更改为 != 并将 else 一起删除:

if (originalColumnCells[i] != sortedColumnCells[i])
{
   return false;
}
// No else
Run Code Online (Sandbox Code Playgroud)


Bur*_*sBA 5

一般来说,你想解释不寻常的事情。

{

}  
Run Code Online (Sandbox Code Playgroud)

这应该是空的吗?东西被删除了吗?最好使您的意图明确:

{
    // do nothing
}  
Run Code Online (Sandbox Code Playgroud)

但是——一般来说——你可能想要改变你的 if 语句,这样你就不会得到空语句。我看到几个答案说要将比较从 更改==!=。但是,像这样的语句呢?

if (a > b && c == d || Object.ReferenceEquals(null, e)) ...  
Run Code Online (Sandbox Code Playgroud)

为了反转这一点,您需要更改><=、更改==!=、更改&&||运算符等。我发现最简单的方法是反转整个语句 with!而不是尝试更改每个比较运算符:

if (!(a > b && c == d || Object.ReferenceEquals(null, e))) ...  
Run Code Online (Sandbox Code Playgroud)