gpt4 book ai didi

c# - 为什么我在这段代码中的输出参数上得到代码分析 CA1062?

转载 作者:太空狗 更新时间:2023-10-29 18:19:26 26 4
gpt4 key购买 nike

我有一个非常简单的代码(从原始代码简化而来 - 所以我知道这不是一个非常聪明的代码)当我在 Visual Studio 2010 中使用代码分析进行编译时给我警告 CA1062:验证公共(public)方法的参数。

public class Foo
{
protected static void Bar(out int[] x)
{
x = new int[1];
for (int i = 0; i != 1; ++i)
x[i] = 1;
}
}

我收到的警告:

CA1062 : Microsoft.Design : In externally visible method 'Foo.Bar(out int[])', validate local variable '(*x)', which was reassigned from parameter 'x', before using it.

我不明白为什么会收到此警告以及如何在不抑制它的情况下解决它? new 可以返回 null 吗?这是 Visual Studio 2010 错误吗?

更新

我决定打开 a bug report on Microsoft Connect .

最佳答案

我在 Visual Studio 2010 Premium 中重现了这个,代码与给定的完全一样,并且在分析设置中启用了 Microsoft All Rules

看起来这是一个错误(请参阅此处底部:http://msdn.microsoft.com/en-us/library/ms182182.aspx)。这是在提示你在使用它之前没有检查 x 是否不为空,但它在 out 参数上所以没有要检查的输入值!

关于c# - 为什么我在这段代码中的输出参数上得到代码分析 CA1062?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2860979/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com