以下语句中的if关键字由ReSharper以绿色下划线标出:
if (readOnlyFields.Contains(propertyName)) return false;
return base.CanWriteProperty(propertyName);
ReSharper建议进行以下更改:
return !readOnlyFields.Contains(propertyName)
&& base.CanWriteProperty(propertyName);
为什么这“更好”?我发现当前代码更具可读性,结果应该与我所知的相同。有什么想法吗?
答案 0 :(得分:3)
任何一方都不会更好,因为任何一方都会比另一方表现更好。 (任何差异都可以完全忽略不计。)
某些编码约定建议您为每个函数使用一个return语句,以便易于理解它的流程。虽然这并不是一个严格而快速的规则,但在这种情况下,很明显发生了什么。如果您不喜欢它的建议,但您希望确保您的代码很容易被其他人阅读,我建议如下:
if (readOnlyFields.Contains(propertyName)) return false;
else return base.CanWriteProperty(propertyName);
但你的方式也很好。
答案 1 :(得分:2)
在快速修复菜单(Alt + Enter)上,有一个“更正选项”(或类似的东西)。您可以将此特定建议转换为提示,或完全关闭。
就个人而言,我更喜欢你的原作而不是ReSharper的建议。
答案 2 :(得分:2)
有些人厌恶从函数中获得多个回报。
随着时间的推移,编程中的所有厌恶似乎都在消失,而这一特定的目前并不是特别流行。
答案 3 :(得分:2)
在这种情况下,“可读性”受读者个人风格的影响很大。一旦你习惯于以某种格式写东西,你也会习惯于以同样的方式阅读它。
例如,我会考虑ReSharper的建议。但这仅仅是个人偏好的问题,再加上我在行尾没有找到返回语句的事实也非常易读。当所有关键字都在行的开头时,扫描代码会更容易一些。
同样,没有“真正的答案”。您可以禁用该建议,并使用您习惯的任何内容。