多路输入的x++开关箱



是否有一种方法可以像c#一样创建多个变量的开关?像这样……

switch((_dim1,_dim2,_dim3))
{
case(1, ""):
Info("1 is null");
case (2, ""):
Info("2 is null");
case (3, ""):
break;
}

自1.0版本(+23年)以来,可以使用多个参数进行切换。它需要使用容器。没有don -care值

下面的作业演示:

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!");
}
}

在这种情况下显示" case 2"

也就是说,这样做的性能可能不是很好,因为它需要为目标值和所有的case值(如果不匹配)构建容器。虽然看起来很整洁。

这在x++中是不可能的,因为没有c#-8.0中的元组模式。

编辑:正如@Jan B. Kjeldsen在他的回答中所显示的那样,可以使用x++容器,类似于在c#-8.0中使用元组模式来创建具有多个输入的switch语句。

最新更新