CodeQL 文档

强制转换为同一类型

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

点击以在 CodeQL 存储库中查看查询

将表达式强制转换为其已有的类型没有任何意义,只会使代码混乱。这表明对表达式的类型存在混淆,或者代码已被部分重构。

此查询适用于 () 运算符和 as 运算符。

建议

在所有情况下,都应删除冗余的强制转换。

示例

以下示例显示了一个 getter,其中返回值被显式强制转换为 int。但这没有必要,因为表达式 properties["Size"] 的类型已经是 int

Dictionary<string, int> properties;

public int Size
{
    get { return (int)properties["Size"]; }
}

通过删除无用的 (int) 可以解决此问题。

Dictionary<string, int> properties;

public int Size
{
    get { return properties["Size"]; }
}

参考

  • ©GitHub 公司
  • 条款
  • 隐私