CodeQL 文档

不可能的数组转换

ID: cs/impossible-array-cast
Kind: problem
Security severity: 
Severity: error
Precision: high
Tags:
   - reliability
   - correctness
   - logic
Query suites:
   - csharp-security-and-quality.qls

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

某些数组类型之间的转换保证在运行时失败:从 Object[] 到 String[] 的转换将始终失败,即使数组的所有元素都是字符串。此检查标识的转换要么立即失败,要么(对于具有参数化类型的数组)在代码的稍后阶段导致 InvalidCastException。

建议

更改数组创建表达式以构造正确类型的数组对象。

示例

class ImpossibleArrayCast
{
    static void Main(string[] args)
    {
        // This will result in an InvalidCastException.
        String[] strs = (String[])new Object[] { "hello", "world" };
    }
}
  • ©GitHub, Inc.
  • 条款
  • 隐私