虽然重构代码我改变了所有if not null条件,以遵循我的代码中的多数约定
if (!(foo == null))
Run Code Online (Sandbox Code Playgroud)
代替
if (foo != null)
Run Code Online (Sandbox Code Playgroud)
这两种说法都有什么优势吗?
在c#中的任何一个语句中都有任何优势吗?
Jon*_*eet 10
假设你没有破坏==/ !=运算符重载,我只是使用第二种形式以获得简单/可读性.如果你确实已经破坏了重载,那么两者之间存在语义差异,那么我建议修复那些重载:)
在极少数情况下,foo == null某些东西更明确,我可能会重构它以使用局部变量:
bool somethingIsMissing = foo == null;
if (!somethingIsMissing)
{
...
}
Run Code Online (Sandbox Code Playgroud)
圆形围绕foo == null现在是可选的 - 根据品味使用或不使用.主要的是你可以使用变量名来使语义清晰.
例如,通常if (!(foo == null))在您需要考虑更多变量时使用
if (!(f1 == 'a' && f2 != 'b'))
Run Code Online (Sandbox Code Playgroud)
有时这种方式更容易将所有内容转换为相反的方式,特别是在使用按位运算符时.
| 归档时间: |
|
| 查看次数: |
69413 次 |
| 最近记录: |