if (!string.IsNullOrEmpty(txtpickupCode.Text)) { if (jhDomain == null) { if (_mxDomain?.mxid == mxDomain?.mxid) { "当前已选择相同提货单明细!".showTips(); } } else { if (_jhDomain?.jhid == jhDomain?.jhid) { "当前已选择相同提货单明细!".showTips(); } } return; }优化这段代码
时间: 2023-12-06 17:41:23 浏览: 36
可以优化为以下代码:
if (string.IsNullOrEmpty(txtpickupCode.Text))
{
return;
}
if ((jhDomain == null && _mxDomain?.mxid == mxDomain?.mxid) ||
(jhDomain != null && _jhDomain?.jhid == jhDomain?.jhid))
{
"当前已选择相同提货单明细!".showTips();
return;
}
这样可以减少嵌套,增加可读性,并且代码逻辑更加清晰。
相关问题
if (!string.IsNullOrEmpty(txtpickupCode.Text)) { if (jhDomain == null) { if (txtpickupCode.Text != mxDomain?.tid.ToString()) { "选择的发运计划 提货单号和 现提货单号 不同,请重新选择或点击下一车!".showWarning(); } } else { if (txtpickupCode.Text != jhDomain?.jhid.ToString()) { "选择的发运计划 提货单号和 现提货单号 不同,请重新选择或点击下一车!".showWarning(); } } return; }优化这段代码
可以考虑使用条件运算符(ternary operator)来简化代码,如下所示:
```csharp
if (!string.IsNullOrEmpty(txtpickupCode.Text))
{
var expectedCode = jhDomain?.jhid.ToString() ?? mxDomain?.tid.ToString();
if (txtpickupCode.Text != expectedCode)
{
"选择的发运计划 提货单号和 现提货单号 不同,请重新选择或点击下一车!".showWarning();
return;
}
}
```
这里使用了 null 合并运算符(null coalescing operator)和条件运算符,可以将 `jhDomain?.jhid.ToString()` 和 `mxDomain?.tid.ToString()` 中的空值转换为 null,然后根据情况选择对应的值作为 `expectedCode`。然后使用条件运算符将 if-else 语句简化为一行代码。
if (!string.IsNullOrEmpty(_selstr))
这段代码是判断一个字符串变量 `_selstr` 是否为空或者为 null 的语句。如果 `_selstr` 是空字符串或者为 null,则条件成立,代码块中的语句将被执行。如果 `_selstr` 不为空,则条件不成立,代码块中的语句将被跳过。`!` 是逻辑非运算符,表示取反。`string.IsNullOrEmpty()` 是一个静态方法,用于判断一个字符串是否为空或者为 null。