У меня есть ситуация, в которой мне нужно проверить несколько условий, где каждая комбинация имеет разный результат. В моем конкретном состоянии у меня есть 2 переменные, которые являются типами enum, каждая из которых может иметь 2 разных значения.
enum Enum1
{
COND_1,
COND_2
}
enum EnumA
{
COND_A,
COND_B
}
Enum1 var1;
EnumA varA;
Это дает мне 4 возможных условия, которые требуют 4 различных результатов. Я придумал несколько разных способов сделать это, используя операторы if или switch switch:
if(var1 == Enum1.COND_1 && varA == EnumA.COND_A)
{
// Code
}
else if(var1 == Enum1.COND_1 && varA == EnumA.COND_B)
{
// Code
}
else if(var1 == Enum1.COND_2 && varA == EnumA.COND_A)
{
// Code
}
else if(var1 == Enum1.COND_2 && varA == EnumA.COND_B)
{
// Code
}
Или:
switch(var1)
{
case COND_1:
switch(varA)
{
case COND_A:
// Code
break;
case COND_B:
// Code
break;
}
break;
case COND_2:
switch(varA)
{
case COND_A:
// Code
break;
case COND_B:
// Code
break;
}
break;
}
Я думал о других, но не хочу заполнять это кодом: P Я хотел бы знать, каков наилучший способ сделать это. Я думаю, что переключатель немного легче читать, но если короче. Я думаю, было бы здорово, если бы у переключателей было несколько условий, но я об этом не слышал. Здесь также возникает вопрос: как лучше всего это сделать с произвольным числом переменных и возможных значений?