我想知道是否有一种方法可以声明很多 case 语句而不必全部编写。比如我的代码:
switch (Weight)
{
case 0 to 2;
ShippingCost = "3.69";
case 3 to 4;
ShippingCost = "4.86";
case 5 to 6;
ShippingCost = "5.63";
case 7 to 8;
ShippingCost = "5.98";
case 9 to 10;
ShippingCost = "6.28";
case 11 to 30;
ShippingCost = "15.72";
}
我开始将 VB 转换为 C#,并意识到要拥有多个 case 语句,您必须声明它们。如您所见,我有 11 到 30 条线,但不想拥有所有这些线。
最佳答案
您不能像在 VB 中那样在 C# 中使用比较。但是,您可以使用 fall-through cases,如下所示:
case 0:
case 1:
case 2:
ShippingCost = "3.69";
break;
case 3:
case 4:
ShippingCost = "4.86";
break;
请注意,非空情况需要 throw
、return
或 break
语句。另请注意,您只能在空情况下失败。
编辑:
为了完整性,正如其他人所指出的,在这种情况下使用一系列 if
语句可能更明智,如下所示:
if(Weight<=2) {
ShippingCost = "3.69";
}
else if(Weight <= 4) {
ShippingCost = "4.86";
}
... etc
关于c# - C# 中的 Case/Switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33782845/