操作符& # 39;| | & # 39;不能应用于字符串和bool类型的操作数
本文关键字:类型 操作数 bool 不能 操作符 应用于 字符串 | 更新日期: 2023-09-27 18:08:34
我有一个问题,我运行下面的代码片段,它给了我错误:
操作符'||'不能应用于'string'和'bool'类型的操作数
var qisg = new QuoteItemSectionGroup
{
SectionGroup = db.SectionGroups.Where(x => x.Name == "Ali Bottom Rail" && x.Section == TruckSection.FrontEndRequirments).First(),
StockItem = quoteItem.BodyType.Name == "Royal Corrugated" ? db.StockItems.Where(x => x.StockCode == "AEX165").First() : null,
};
qisg.Quantity = qisg.StockItem == null ? 0 : 1;
//Error in the line below
qisg.Length = qisg.StockItem == null ? 0 : (double)quoteItem.ExternalWidth + quoteItem.BodyType.Name = "Royal Corrugated" || quoteItem.BodyType.Name == "Royal Smooth Glued" || quoteItem.BodyType.Name == "Smooth Folded" || quoteItem.BodyType.Name == "Royal Smooth Riveted" ? -0.136 : -0.020;
quoteItem.SectionGroups.Add(qisg);
我如何能够做相同类型的事情与编码不同,而不是使用'||'
操作符?
变化
(double)quoteItem.ExternalWidth + quoteItem.BodyType.Name = "Royal Corrugated" || quoteItem.BodyType.Name == "Royal Smooth Glued" || quoteItem.BodyType.Name == "Smooth Folded" || quoteItem.BodyType.Name == "Royal Smooth Riveted" ? -0.136 : -0.020;
(double)quoteItem.ExternalWidth + ( quoteItem.BodyType.Name == "Royal Corrugated" || quoteItem.BodyType.Name == "Royal Smooth Glued" || quoteItem.BodyType.Name == "Smooth Folded" || quoteItem.BodyType.Name == "Royal Smooth Riveted" ? -0.136 : -0.020 );
更改:
- 围绕三元的括号,以便更易于阅读。
- quoteItem.BodyType。Name = "Royal瓦楞",这是错误的,应该是两个=这是==
来自下面的代码片段:
"Royal Corrugated" || quoteItem.BodyType.Name == "Royal Smooth Glued"
==操作符优先于||操作符。
因此quoteItem.BodyType.Name == "Royal Smooth Glued"
被转换为布尔值。然后你基本上有<string> || <bool>
,这是c#不允许的。