Csharp/C#教程:Resharper是否正确?分享


Resharper是否正确?

我刚刚安装了Reshaper 4.5,它提出了以下建议:

return this.GetRuleViolations().Count() == 0; -- REMOVE this. new string[] { this.ID.ToString(), this.Registration } -- REMOVE string, MAKE ANONYMOUS TYPE int i = Method.GetNumber(); -- REPLACE int WITH var 

我应该这样做吗?

我认为在某些情况下,它会降低代码的可读性,但会提高性能吗? 进行这些更改有什么好处?

谢谢

1)只有当引用不明确时才需要显式this指针。 由于GetRuleViolations是在类型上定义的,因此您很可能不需要this

这里的另一点是,如果GetRuleViolations返回一个IEnumerable的东西,你通常会更好地使用Any()而不是Count() == 0因为你冒险枚举整个序列。

2)字符串可以从初始化推断出来。

3)Resharper更喜欢特定类型的var

除了你的小方块绿色的明显好处,如果你正在编写将由其他人以后维护的代码,那么在编码语法中不使用你的个人偏好是很有意义的。 Resharper在以非常广泛的受众可识别的方式格式化代码方面变得非常有用。

我属于思想学派,认为谁的方式是对的并不重要。 如果我们都坚持一个模式,我们都会发现更容易阅读彼此的代码。

因此,在我看来,不要更改默认的resharper设置。 只要接受,如果你使用默认值,你就会让每个人的生活变得简单。

对于第三个 – 最让我烦恼的那个。 它为读者提供了更少的信息,我认为这只是展示新function的问题。

我会说 – 当你知道返回类型时使用var并在你不喜欢这个时使用正确的对象类型:

 var reader = new XmlReader(.... // Implicit XmlReader reader = SomeClass.GetReader() // Explicit when you can't be sure 

我认为第一个是出于此目的,如果你想让“GetRuleViolations()”成为静态方法。 然后你不必删除“this”标识符。

第一个:Resharper要求删除this ,这对我来说只是一种风格。 没有更多,保持它不会以任何方式损害性能。 这只是一个可读性的问题。

对于第二个和第三个:Resharper通常更喜欢使用var而不是特定的数据类型,这就是建议的原因。 我认为这是个人选择的问题,并且除了可读性之外不提供额外的收益。

第一个似乎不清楚我。 您通常不必为此添加前缀this. 只要没有歧义,我从这个例子中无法分辨。 Resharper可能是对的。 另外两个不会提高性能,编译结果也是一样的。 这只是一个品味问题,当然还有您的编码指南。

第一个应该是可配置的。 据我记忆,你可以告诉ReSharper你是否想要“这个”。 只有字段,方法,两者或没有。

使用“var”不会更改生成的CIL代码中的任何内容,因此性能将保持不变。 我有一段时间没有使用过ReSharper,我不知道为什么它会如此积极地推广匿名类型,但“var”的一个优点是它更能抵抗变化。

这意味着,如果不是调用Method.GetNumber(),而是调用了一个包装器,例如。 在返回Nullable的同一行中过滤(Method.GetNumber()),您不必更新变量的类型。

这些都不会对性能产生任何影响, 只会影响可读性。

我发现建议1和2更具可读性,并且比原始代码的可读性低3。

但是,如果您发现它们的可读性较差或违反了公司的代码风格标准,则您无需遵循这些建议。 将光标放在波浪线上时,按Alt-Enter显示“上下文操作”列表。 其中一个是改变检查的严重程度; 您根本无法显示它或将其显示为提示。 您可以在ReSharper |找到完整的检查列表 选项| 代码检查| 检查严重程度

上述就是C#学习教程:Resharper是否正确?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1015133.html

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐