不可能的数组转换¶
ID: cs/impossible-array-cast
Kind: problem
Security severity:
Severity: error
Precision: high
Tags:
- reliability
- correctness
- logic
Query suites:
- csharp-security-and-quality.qls
某些数组类型之间的转换保证在运行时失败:从 Object[] 到 String[] 的转换将始终失败,即使数组的所有元素都是字符串。此检查标识的转换要么立即失败,要么(对于具有参数化类型的数组)在代码的稍后阶段导致 InvalidCastException。
建议¶
更改数组创建表达式以构造正确类型的数组对象。
示例¶
class ImpossibleArrayCast
{
static void Main(string[] args)
{
// This will result in an InvalidCastException.
String[] strs = (String[])new Object[] { "hello", "world" };
}
}