问题标签 [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.
c# - CA1062: ValidateArgumentsOfPublicMethods 对共同构造函数调用
我有一个有两个构造函数的类,如下所示:
当我运行 FxCop 时,它正确报告了违反CA1062: ValidateArgumentsOfPublicMethods,因为如果source
在null
第一个构造函数中,它会抛出一个NullReferenceException
on source.Name
。
有什么办法可以解决这个警告吗?
我可以创建一个扩展方法来检查 null 并返回它的参数,但它会很难看。此外,据我了解,它不会解决警告,因为 FxCop 不会意识到它的作用。
visual-studio - 我应该禁止 CA1062:验证公共方法的参数吗?
我最近将我的项目从 Visual Studio 2008 升级到 Visual Studio 2010。
在 Visual Studio 2008 中,此代码分析规则不存在。
现在我不确定我是否应该使用这条规则。
我正在构建一个开源库,所以让人们避免犯错似乎很重要。但是,如果我要做的只是ArgumentNullException
在参数为 时抛出null
,这似乎是在编写无用的代码,因为ArgumentNullException
即使我不编写该代码也会被抛出。
编辑:另外,还有一个性能问题需要解决。null
在每个公共方法中检查可能会导致性能问题。
我应该删除该规则还是修复违规行为?
c# - 为什么我会在此代码中的 out 参数上获得代码分析 CA1062?
我有一个非常简单的代码(从原始代码简化 - 所以我知道它不是一个非常聪明的代码),当我在 Visual Studio 2010 中使用代码分析进行编译时,我会收到警告 CA1062:验证公共方法的参数。
我得到的警告:
CA1062:Microsoft.Design:在外部可见方法“Foo.Bar(out int[])”中,在使用之前验证从参数“x”重新分配的局部变量“(*x)”。
我不明白为什么会收到此警告以及如何在不抑制它的情况下解决它?可以new
退货null
吗?这是 Visual Studio 2010 的错误吗?
更新
c# - 无法抑制 FxCop 警告 CA1062
c#/.net/fxcop!
...在课堂上,我希望 FxCop 闭嘴抱怨
基本上,这条规则表明我if (a == null) throw new ArgumentNullException("a");
在代码中几乎每个方法的开头都放了一个。这很糟糕并改变了异常处理逻辑。
所以,我把它放在我的班级主体的某个地方:
无论如何,这甚至不会抑制一条消息 - 我仍然收到所有这些警告。如果它正好位于一个错误的方法定义之上,它只会抑制警告(即它只抑制一个警告,而不是所有这种类型)。奇怪的是,相同的语法适用于我课堂上多次出现的其他问题。
我不知道我做错了什么,坦率地说我不太了解如何使用属性参数.. http://msdn.microsoft.com/de-de/library/ms244717.aspx没有太详细了。:T ...无论如何,有什么想法是不对的吗?
c# - CA1062(代码分析)不同意 ReSharper——谁赢了?
如果我检查 null,CA 很高兴,但 ReSharper 说 null 检查总是错误的。我不确定谁在这里更值得信赖......这似乎是 ReSharper 中的一个错误,因为理论上,有人可以从我的类扩展并直接调用此方法传入 null。但我想我只是想仔细检查哪个工具是正确的,哪个工具有错误。
c# - 通过生成参数验证来修复 FxCop CA1062
为一个大型项目打开代码分析会显示大量 CA1062 衰减,这绝对是 IMO 正确的。
我想自动处理这些而不必遍历每一个,无论如何通过对所有方法参数使用断言或类似的东西来在整个代码中自动执行此操作:
code-analysis - 代码分析警告:CA1062真的是误报?
在我的代码中,我有一个参考变量 LogValidacionPagosDTO
执行“代码分析”时会生成此警告
然后尝试将对象验证为 null
但是,我真的需要知道这是否是误报,谢谢!
c# - CA1062 未在 .Net Standard 2.0 类库上进行评估
我无法评估 CA1062(验证公共方法的参数)。
根据此屏幕截图,我创建了一个 .Net Standard 2.0 C# 类库并安装Microsoft.CodeQuality.Analyzers
了其他几个 nuget 包:
根据图像,我还在项目的规则集中启用了 CA1062:
我创建了这个类来测试 CA1062(验证公共方法的参数)是否评估:
在DeclareWarOn
方法中,enemy
从不检查参数的null
值,而是在行中使用String enemyName = enemy.Name;
这是假设触发CA1062,但它没有被触发。
其他规则会评估。例如,我创建了一个internal
异常类,如下所示:
这确实触发了它的相关代码分析警告(CA1064)。但是我无法让 CA1062 进行评估。
.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