具有多个输入的 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;
 }

这在 , as there is no tuple pattern as in 中是不可能的。

编辑:正如@Jan B. Kjeldsen 在他的回答中所展示的那样, containers can be used similar to how tuple patterns can be used in 创建一个带有多个输入的 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”。

也就是说,它的性能可能不是很好,因为它需要为目标值和所有案例值(如果不匹配)构建容器。 不过看起来有点整洁。