问题标签 [ca1062]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1908 浏览

c# - CA1062: ValidateArgumentsOfPublicMethods 对共同构造函数调用

我有一个有两个构造函数的类,如下所示:

当我运行 FxCop 时,它正确报告了违反CA1062: ValidateArgumentsOfPublicMethods,因为如果sourcenull第一个构造函数中,它会抛出一个NullReferenceExceptionon source.Name

有什么办法可以解决这个警告吗?

我可以创建一个扩展方法来检查 null 并返回它的参数,但它会很难看。此外,据我了解,它不会解决警告,因为 FxCop 不会意识到它的作用。

0 投票
3 回答
3406 浏览

visual-studio - 我应该禁止 CA1062:验证公共方法的参数吗?

我最近将我的项目从 Visual Studio 2008 升级到 Visual Studio 2010。

在 Visual Studio 2008 中,此代码分析规则不存在。

现在我不确定我是否应该使用这条规则。

我正在构建一个开源库,所以让人们避免犯错似乎很重要。但是,如果我要做的只是ArgumentNullException在参数为 时抛出null,这似乎是在编写无用的代码,因为ArgumentNullException即使我不编写该代码也会被抛出。

编辑:另外,还有一个性能问题需要解决。null在每个公共方法中检查可能会导致性能问题。

我应该删除该规则还是修复违规行为?

0 投票
2 回答
6720 浏览

c# - 为什么我会在此代码中的 out 参数上获得代码分析 CA1062?

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

我得到的警告:

CA1062:Microsoft.Design:在外部可见方法“Foo.Bar(out int[])”中,在使用之前验证从参数“x”重新分配的局部变量“(*x)”。

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

更新

我决定在 Microsoft Connect 上打开一个错误报告

0 投票
1 回答
3561 浏览

c# - 无法抑制 FxCop 警告 CA1062

c#/.net/fxcop!

...在课堂上,我希望 FxCop 闭嘴抱怨

基本上,这条规则表明我if (a == null) throw new ArgumentNullException("a");在代码中几乎每个方法的开头都放了一个。这很糟糕并改变了异常处理逻辑。

所以,我把它放在我的班级主体的某个地方:

无论如何,这甚至不会抑制一条消息 - 我仍然收到所有这些警告。如果它正好位于一个错误的方法定义之上,它只会抑制警告(即它只抑制一个警告,而不是所有这种类型)。奇怪的是,相同的语法适用于我课堂上多次出现的其他问题。

我不知道我做错了什么,坦率地说我不太了解如何使用属性参数.. http://msdn.microsoft.com/de-de/library/ms244717.aspx没有太详细了。:T ...无论如何,有什么想法是不对的吗?

0 投票
1 回答
361 浏览

c# - CA1062(代码分析)不同意 ReSharper——谁赢了?

如果我检查 null,CA 很高兴,但 ReSharper 说 null 检查总是错误的。我不确定谁在这里更值得信赖......这似乎是 ReSharper 中的一个错误,因为理论上,有人可以从我的类扩展并直接调用此方法传入 null。但我想我只是想仔细检查哪个工具是正确的,哪个工具有错误。

0 投票
1 回答
808 浏览

c# - 通过生成参数验证来修复 FxCop CA1062

为一个大型项目打开代码分析会显示大量 CA1062 衰减,这绝对是 IMO 正确的。

我想自动处理这些而不必遍历每一个,无论如何通过对所有方法参数使用断言或类似的东西来在整个代码中自动执行此操作:

0 投票
0 回答
236 浏览

code-analysis - 代码分析警告:CA1062真的是误报?

在我的代码中,我有一个参考变量 LogValidacionPagosDTO

执行“代码分析”时会生成此警告

然后尝试将对象验证为 null

但这并没有解决警告。我在微软论坛https://social.msdn.microsoft.com/Forums/en-US/fdb00899-c7ea-4e8e-b5f6-9768c2ac0001/ca1062-false-positive-in-externally-visible-method-找到了这个可能的解决方案xxx-validate-local-variable-x-which-was?forum=vstscode

但是,我真的需要知道这是否是误报,谢谢!

0 投票
1 回答
259 浏览

c# - CA1062 未在 .Net Standard 2.0 类库上进行评估

我无法评估 CA1062(验证公共方法的参数)。

根据此屏幕截图,我创建了一个 .Net Standard 2.0 C# 类库并安装Microsoft.CodeQuality.Analyzers了其他几个 nuget 包: 项目分析仪

根据图像,我还在项目的规则集中启用了 CA1062:

规则集中启用 CA1062

我创建了这个类来测试 CA1062(验证公共方法的参数)是否评估:

DeclareWarOn方法中,enemy从不检查参数的null值,而是在行中使用String enemyName = enemy.Name;

这是假设触发CA1062,但它没有被触发。

其他规则会评估。例如,我创建了一个internal异常类,如下所示:

这确实触发了它的相关代码分析警告(CA1064)。但是我无法让 CA1062 进行评估。

0 投票
1 回答
113 浏览

.net - Why compiller stills trhowing CA1062 once I validated public nullable parameter?

I just enabled FxCop Code Analyzers and, while fixing warnings this one could not be fixed:

CA1062: Validate arguments of public methods

Compiller still throwing warning CA1062 accessing fileName

Thanks in advance