c# - 带有函数输出参数的 if-else 语句逻辑
问题描述
我正在一个循环中工作以测试是否存在外部连接。如果连接确实存在,那么我想对其进行操作,拉回信息。如果没有,那么我想打开连接。我假设逻辑会这样:
if (IsConnected()) {
OperateOnStream();
} else {
Connect();
}
问题是定义的接口是:
public Result IsConnected(out bool connected)
返回类型,Result
是在别处定义的类,实际上是在内部实例化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();
}
归根结底,原始代码无论如何都不是“相当低效”的。
推荐阅读
- mysql - MySQLSelect 语句
- laravel - 使用 foreach 在 laravel 中进行大规模更新
- amazon-web-services - 使用无服务器框架的 lambda AWS 中的授权代码授予
- multithreading - 子进程在线程中运行的行为
- php - 我想在 codeigniter 框架中导入 csv。但显示类似 Undefined property: Cforcecontroller::$csvimport 的错误
- json - 复杂的 Notepad++ 复制、替换和插入
- ethereum - 错误:gas * price + value 资金不足(出现此错误,我正在使用 trezorjs)
- java - 如何将arraylist的多个项目与特定位置的另一个arraylist进行比较?
- eclipse - Spring Boot 无法执行目标 org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test
- javascript - D3 多系列折线图无法使用正确的 xAxis 值