我的代码是这样的:
if (statusCode== "1")
{
statusCode = productStatusItemAvailable1;
}
else if(statusCode =="2")
{
statusCode = productStatusItemOutOfStock1;
}
else if(statusCode =="3")
{
statusCode = productStatusItemAvailableOnRemoteDate1;
}
else if(statusCode =="4")
{
statusCode = productStatusAlternativeItemAvailable1;
}
else if(statusCode =="5")
{
statusCode = productStatusItemSoldOutAndOurSuppliersHaveNoAvailable;
}
else if(statusCode =="6")
{
statusCode = productStatusItemSoldOutContactCustomerService1;
}
为了使其更具可读性和易于处理,我尝试应用三元运算符
statusCode == "1" ? productStatusItemAvailable1: "2" ? productStatusItemOutOfStock1 : "3" ? productStatusItemAvailableOnRemoteDate1 : "4" ? productStatusAlternativeItemAvailable1 : "5" ? productStatusItemSoldOutAndOurSuppliersHaveNoAvailable : "6" ? productStatusItemSoldOutContactCustomerService1;
但这显示错误
Can not implicitly convert string to bool.
我做错了什么?还是不能使用字符串?
最佳答案
如前所述,您没有根据字符串检查值。也就是说,您绝对应该为此使用 switch 语句:
switch(statusCode)
{
case "1":
// do some stuff
break;
// etc...
}
虽然理想情况下,statusCode
应该是一个枚举,其中每个值都对应于错误,但它会使您的代码更清晰。
关于c# - 条件运算符使用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20655255/