CodeQL 文档

无用类型测试

ID: cs/useless-type-test
Kind: problem
Security severity: 
Severity: warning
Precision: medium
Tags:
   - maintainability
   - language-features
   - external/cwe/cwe-561
Query suites:
   - csharp-security-and-quality.qls

点击查看 CodeQL 代码库中的查询

对于任何类型 B,从 B 派生的类型的实例也是 B 的实例。无需对此进行显式测试。

建议

删除无用的类型测试。

示例

在此示例中,类 Sub 扩展了类 Super。初始化 Sub 的新实例 sub,并检查它是否是 Super 的实例。由于 Sub 扩展了 Super,因此无需测试 sub 是否为 Super,因为它保证是这种情况。

class UselessTypeTest
{
    class Super { }
    class Sub : Super { }

    static void Main(string[] args)
    {
        Sub sub = new Sub();
        if (sub is Super)
        {
            Console.WriteLine("Surprise! sub is a Super!");
        }
    }
}
  • ©GitHub, Inc.
  • 条款
  • 隐私