当前位置:  开发笔记 > 编程语言 > 正文

为什么Resharper的"冗余字段初始化程序"的默认检查严重性设置为"警告"

如何解决《为什么Resharper的"冗余字段初始化程序"的默认检查严重性设置为"警告"》经验,为你挑选了1个好方法。

Resharper经常抱怨我显式初始化我的类中的字段虽然它是多余的,因为没有初始化它们将具有相同的(默认)值.但是,我经常更喜欢显式初始化,因为恕我直言,代码变得更清晰,我在阅读代码时必须少思考.

但是,当我只想关闭此检查时,我注意到默认严重性设置为"警告".到目前为止,我一直认为这只是一个机会删除一些代码字符的提示,但现在我想知道在使用冗余初始化程序时是否确实存在风险.

我错过了什么吗?冗余初始化程序会出现哪些错误?



1> Anton Gogole..:

微软解释了为什么冗余字段初始化是多余的,这样:

在大多数情况下,在构造函数中将字段初始化为其默认值是多余的,这会降低性能并增加维护成本.

如果存在的话,性能成本可以忽略不计(感谢@ lex82的发现):

我们取消了规则CA1805,因为它解雇的案例并不真正有趣或有用.在Release构建中,用户的代码将变量初始化为类型的默认值,由编译器优化.在Debug构建中,大多数警告都是针对生成的代码,用户无法真正做任何事情.

然而,心理开销是需要考虑的事情.当一个人习惯于将字段的默认行为初始化为默认值时,看到冗余初始化是一个直接的"WAT?" .这是什么意思?我们是否正在解决一些未记录的行为或编译器/运行时/ JIT错误?或者二进制序列化以某种方式搞乱字段?或完全不同的东西?

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有