我的三元 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
。
我想知道是否可以将这段代码语句转换为三元 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
。