具有多个输入的 X++ 开关盒
X++ switch case with multiple inputs
是否有像 C# 中那样的方法来创建具有多个变量的开关?
像这样..
switch((_dim1,_dim2,_dim3))
{
case(1, ""):
Info("1 is null");
case (2, ""):
Info("2 is null");
case (3, ""):
break;
}
这在 x++, as there is no tuple pattern as in c#-8.0 中是不可能的。
编辑:正如@Jan B. Kjeldsen 在他的回答中所展示的那样,x++ containers can be used similar to how tuple patterns can be used in c#-8.0 创建一个带有多个输入的 switch 语句。
自 1.0 版(+23 年)以来,可以使用多个参数进行切换。
它需要使用容器。
没有无所谓的值。
以下工作演示:
static void TestConSwitch(Args _args)
{
int dim1 = 2;
str dim2 = '';
switch ([dim1, dim2])
{
case [1, '']:
info("Case 1");
break;
case [2, '']:
info("Case 2");
break;
default:
info("Default!");
}
}
在这种情况下显示“案例 2”。
也就是说,它的性能可能不是很好,因为它需要为目标值和所有案例值(如果不匹配)构建容器。
不过看起来有点整洁。
是否有像 C# 中那样的方法来创建具有多个变量的开关? 像这样..
switch((_dim1,_dim2,_dim3))
{
case(1, ""):
Info("1 is null");
case (2, ""):
Info("2 is null");
case (3, ""):
break;
}
这在 x++, as there is no tuple pattern as in c#-8.0 中是不可能的。
编辑:正如@Jan B. Kjeldsen 在他的回答中所展示的那样,x++ containers can be used similar to how tuple patterns can be used in c#-8.0 创建一个带有多个输入的 switch 语句。
自 1.0 版(+23 年)以来,可以使用多个参数进行切换。 它需要使用容器。 没有无所谓的值。
以下工作演示:
static void TestConSwitch(Args _args)
{
int dim1 = 2;
str dim2 = '';
switch ([dim1, dim2])
{
case [1, '']:
info("Case 1");
break;
case [2, '']:
info("Case 2");
break;
default:
info("Default!");
}
}
在这种情况下显示“案例 2”。
也就是说,它的性能可能不是很好,因为它需要为目标值和所有案例值(如果不匹配)构建容器。 不过看起来有点整洁。