3

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

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

return base.CanWriteProperty(propertyName);

ReSharper 建议进行以下更改:

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

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

4

4 回答 4

3

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

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

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

不过你的方法也不错。

于 2009-01-12T09:49:05.920 回答
2

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

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

于 2009-01-12T09:28:50.937 回答
2

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

编程中的所有厌恶似乎都随着时间的流逝而起起落落,而这种特殊的厌恶目前并不是特别流行。

于 2009-01-12T09:32:48.417 回答
2

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

例如,我会接受 ReSharper 的建议。但这只是个人喜好问题,再加上我在行尾发现 return 语句也不是非常易读的事实。当所有关键字都在行首时,扫描代码会稍微容易一些。

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

于 2009-01-12T09:55:04.003 回答