CodeQL 文档

条件语句或循环体的空分支

ID: cs/empty-block
Kind: problem
Security severity: 
Severity: warning
Precision: high
Tags:
   - reliability
   - readability
Query suites:
   - csharp-security-and-quality.qls

点击以在 CodeQL 代码库中查看查询

应检查空代码块或仅包含已注释掉代码的代码块。在空代码块中经常会发现已注释掉的代码。不建议使用已注释掉的代码,因为它是缺陷和可维护性问题的根源。

建议

适当的解决方案取决于具体情况。如果代码块应该执行某些操作,请添加实现(如果可能)。如果代码块是冗余的,请将其删除。请注意,然后可能需要进行一些重构:例如,如果“if”的“then”分支为空,则应将其删除,并且应反转“if”条件的意义以简化代码。

示例

在此示例中,if 语句的整个“then”块都已注释掉。应删除该代码块并反转 if 条件的意义。

using System;

class EmptyBlock
{
    static void Main(string[] args)
    {
        int i = 23;

        if (i == 42)
        {
            // TODO: Currently still research problems - professors aware.
#if false
            AchieveEnlightenment();
            CureCancer();
            world.SetPeaceful(true);
#endif
        }
        else
        {
            Console.WriteLine("Welcome to this meeting of the Realist Society. Join us!");
        }

        // After removing the empty block:
        if (i != 42)
        {
            Console.WriteLine("Welcome to this meeting of the Realist Society. Join us!");
        }
    }
}
  • ©GitHub, Inc.
  • 条款
  • 隐私