我想知道对可空的bool进行条件检查最干净,最易理解的语法是什么.
以下是编码风格的好坏吗?有没有办法更好/更干净地表达条件?
bool? nullableBool = true;
if (nullableBool ?? false) { ... }
else { ... }
Run Code Online (Sandbox Code Playgroud)
尤其是if(nullableBool ?? false)部分.我不喜欢这种if (x.HasValue && x.Value)风格......
(不确定之前是否问过这个问题......找不到与搜索类似的内容)
关于以下代码是否应该产生编译器警告的一个问题(它没有).它声明了两个相同名称/返回类型的方法,一个具有默认值的附加命名/可选参数.
注意:从技术上讲,分辨率并不含糊,因为规则明确规定第一种方法将被调用.请参见此处,重载分辨率,第三个要点.毫无疑问,这种行为对我来说也很直观.
public void Foo(int arg) { ... }
public void Foo(int arg, bool bar = true) { ...}
Foo(42); // shouldn't this give a compiler warning?
Run Code Online (Sandbox Code Playgroud)
我认为编译器警告在这里会很直观.虽然代码在技术上是干净的(无论是声音设计是一个不同的问题:)).