检查布尔值是否为真时是否有简写?
例子:
if (autoConnect) Connect();
我们可以做的
return IsOpen() ? true : false;
但我无法得到
autoConnect ? Connect();
跑步。有没有办法做到这一点?
检查布尔值是否为真时是否有简写?
例子:
if (autoConnect) Connect();
我们可以做的
return IsOpen() ? true : false;
但我无法得到
autoConnect ? Connect();
跑步。有没有办法做到这一点?
你可以写一个扩展方法:
public static void _(this bool b, Action ifTrue)
{
if (b) { ifTrue(); }
}
那么你可以写:
autoConnect._(Connect);
虽然显然这不是很可读,也不推荐。
不,没有办法开始autoConnect ? Connect();
工作。
只需返回布尔值,不需要三元运算符:
return IsOpen();
或者,当您要测试的值可以使用??
运算符为空时,您可以返回一些值,例如:
return a ?? b;
如果a
为空,则返回b
。
要回答你的问题,不,没有速记
if (autoConnect) Connect();
任何更短。此外,您提出的解决方案仅节省了 3 个字符,这是对原本完全可读的代码的不必要的打高尔夫球。
正如 siride 所说,这if (autoConnect) Connect();
是最短的方法。不过,这只是在编写代码时。每当编译器编译代码时,它将变得与使用if (autoConnect) { Connect(); }
or相同if (autoConnect == true) { Connect(); }
。
你应该使用你认为最干净或最容易阅读的任何东西。