bri*_*ner 5 code-analysis fxcop visual-studio-2010 ca1062 visual-studio
我最近从Visual Studio 2008将项目升级到Visual Studio 2010.
在Visual Studio 2008中,此代码分析规则不存在.
现在我不确定我是否应该使用这条规则.
我正在构建一个开源库,因此让人们免于犯错似乎很重要.但是,如果我要做的就是ArgumentNullException在参数出现时抛出null,它似乎编写无用的代码,因为ArgumentNullException即使我不编写该代码也会被抛出.
编辑:此外,还有一个性能问题需要解决.检查null每种公共方法都可能导致性能问题.
我应该删除该规则还是修复违规行为?
那要看.使用ArgumentNullException时的约定是在描述中包含null参数的名称.因此呼叫者将确切地知道出了什么问题.
NullReferenceException的源(如果你不验证会发生这种情况)很容易发现,但如果方法很复杂,可能会更困难.您最终可能会遇到一行代码,其中多个引用可能为null.
我个人更喜欢让公共方法抛出ArgumentNullException,如果它们不能处理给定参数的空输入,因为无论方法如何实现,它都允许一致的行为.
回复编辑:在我看来,提供一组一致的接口比提供优化每行代码更少的意外更为重要.我的猜测是,在大多数情况下,空检查的性能开销不会很大.如果它确实是一个问题(如在分析中所说),我会考虑改变它.否则我不认为这是一个问题.
| 归档时间: | 
 | 
| 查看次数: | 2571 次 | 
| 最近记录: |