ReSharper语法建议

时间:2009-01-12 09:24:46

标签: c# visual-studio-2008 syntax resharper

以下语句中的if关键字由ReSharper以绿色下划线标出:

if (readOnlyFields.Contains(propertyName)) return false;

return base.CanWriteProperty(propertyName);

ReSharper建议进行以下更改:

return !readOnlyFields.Contains(propertyName) 
    && base.CanWriteProperty(propertyName);

为什么这“更好”?我发现当前代码更具可读性,结果应该与我所知的相同。有什么想法吗?

4 个答案:

答案 0 :(得分:3)

任何一方都不会更好,因为任何一方都会比另一方表现更好。 (任何差异都可以完全忽略不计。)

某些编码约定建议您为每个函数使用一个return语句,以便易于理解它的流程。虽然这并不是一个严格而快速的规则,但在这种情况下,很明显发生了什么。如果您不喜欢它的建议,但您希望确保您的代码很容易被其他人阅读,我建议如下:

if (readOnlyFields.Contains(propertyName)) return false;
else return base.CanWriteProperty(propertyName);

但你的方式也很好。

答案 1 :(得分:2)

在快速修复菜单(Alt + Enter)上,有一个“更正选项”(或类似的东西)。您可以将此特定建议转换为提示,或完全关闭。

就个人而言,我更喜欢你的原作而不是ReSharper的建议。

答案 2 :(得分:2)

有些人厌恶从函数中获得多个回报。

随着时间的推移,编程中的所有厌恶似乎都在消失,而这一特定的目前并不是特别流行。

答案 3 :(得分:2)

在这种情况下,“可读性”受读者个人风格的影响很大。一旦你习惯于以某种格式写东西,你也会习惯于以同样的方式阅读它。

例如,我会考虑ReSharper的建议。但这仅仅是个人偏好的问题,再加上我在行尾没有找到返回语句的事实也非常易读。当所有关键字都在行的开头时,扫描代码会更容易一些。

同样,没有“真正的答案”。您可以禁用该建议,并使用您习惯的任何内容。