带函数输出参数的 if-else 语句逻辑
If-else statement logic with function out parameter
我正在循环中工作以测试是否存在外部连接。如果连接确实存在,那么我想对其进行操作,拉回信息。如果没有,那么我想打开连接。我假设逻辑会去:
if (IsConnected()) {
OperateOnStream();
} else {
Connect();
}
问题是定义的接口是:
public Result IsConnected(out bool connected)
return类型,Result
是在别处定义的class,实际上是在IsConnected
内部实例化的,没有有用的信息。
目前我有
bool isConnected;
IsConnected(out isConnected);
if (isConnected) {
OperateOnStream();
} else {
Connect();
}
我的问题是:属于周期性运行的函数,效率比较低。它创建了一个不必要的变量,并且相当不优雅。我无法更改基础 API。有没有更好的办法?提前致谢。
你可以这样做:
if (IsConnected(out bool connected) != null && connected)
{
OperateOnStream();
}
else
{
Connect();
}
但它并没有好多少,如果有的话。
或者这样:
bool isConnected() => IsConnected(out bool connected) != null && connected;
if (isConnected())
{
OperateOnStream();
}
else
{
Connect();
}
归根结底,原始代码并不是“相当低效”。
我正在循环中工作以测试是否存在外部连接。如果连接确实存在,那么我想对其进行操作,拉回信息。如果没有,那么我想打开连接。我假设逻辑会去:
if (IsConnected()) {
OperateOnStream();
} else {
Connect();
}
问题是定义的接口是:
public Result IsConnected(out bool connected)
return类型,Result
是在别处定义的class,实际上是在IsConnected
内部实例化的,没有有用的信息。
目前我有
bool isConnected;
IsConnected(out isConnected);
if (isConnected) {
OperateOnStream();
} else {
Connect();
}
我的问题是:属于周期性运行的函数,效率比较低。它创建了一个不必要的变量,并且相当不优雅。我无法更改基础 API。有没有更好的办法?提前致谢。
你可以这样做:
if (IsConnected(out bool connected) != null && connected)
{
OperateOnStream();
}
else
{
Connect();
}
但它并没有好多少,如果有的话。
或者这样:
bool isConnected() => IsConnected(out bool connected) != null && connected;
if (isConnected())
{
OperateOnStream();
}
else
{
Connect();
}
归根结底,原始代码并不是“相当低效”。