条件语句或循环体的空分支¶
ID: cs/empty-block
Kind: problem
Security severity:
Severity: warning
Precision: high
Tags:
- reliability
- readability
Query suites:
- csharp-security-and-quality.qls
应检查空代码块或仅包含已注释掉代码的代码块。在空代码块中经常会发现已注释掉的代码。不建议使用已注释掉的代码,因为它是缺陷和可维护性问题的根源。
建议¶
适当的解决方案取决于具体情况。如果代码块应该执行某些操作,请添加实现(如果可能)。如果代码块是冗余的,请将其删除。请注意,然后可能需要进行一些重构:例如,如果“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!");
}
}
}