我的三元 If 语句中可以有嵌套的 OR 语句吗?

Can I have a nested OR statement within my Ternary If statement?

我想知道是否可以将这段代码语句转换为三元 if 语句。

var placeHolder = await Source.EntityOrDefaultAsync<_Item>(item => item.CompanyID == order.CompanyID && item.ItemID == od.ItemID);

                if (placeHolder.TaxedAllCountryRegions = true || placeHolder.TaxedFed == 1 && placeHolder.TaxedState == 1)
                {
                    decimal.TryParse(placeHolder.HandlingFee, out decimal trueFee);
                    od.HandlingFee = trueFee * od.Quantity;
                }

我试过这样格式化它,但我认为它不太管用。

 var placeHolder = await Source.EntityOrDefaultAsync<_Item>(item => item.CompanyID == order.CompanyID && item.ItemID == od.ItemID);

                return (placeHolder.TaxedAllCountryRegions = true || placeHolder.TaxedFed == 1 && placeHolder.TaxedState == 1) ?
                                                                                                                                decimal.TryParse(placeHolder.HandlingFee, out decimal trueFee)
                                                                                                                                : false;
                od.HandlingFee = trueFee * od.Quantity;

正如 canton7 已经评论的那样,您可能希望使用 == true 而不是 = true。大概 || 之后的部分也必须放在括号中。

除此之外,您还需要分配 HandlingFee,因此单独使用条件运算符无济于事。但是为什么不使用 bool 变量呢?

bool computeHandlingFee = placeHolder.TaxedAllCountryRegions || (placeHolder.TaxedFed == 1 && placeHolder.TaxedState == 1);
if(computeHandlingFee && decimal.TryParse(placeHolder.HandlingFee, out decimal trueFee))
{
     od.HandlingFee = trueFee * od.Quantity;
}
return computeHandlingFee;

也许您想在 computeHandlingFee 逻辑中包含 decimal.TryParse