Эффективно проверить несколько условий [закрыто]

У меня есть ситуация, в которой мне нужно проверить несколько условий, где каждая комбинация имеет разный результат. В моем конкретном состоянии у меня есть 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 Я хотел бы знать, каков наилучший способ сделать это. Я думаю, что переключатель немного легче читать, но если короче. Я думаю, было бы здорово, если бы у переключателей было несколько условий, но я об этом не слышал. Здесь также возникает вопрос: как лучше всего это сделать с произвольным числом переменных и возможных значений?

8
задан Fromen 29 November 2016 в 07:26
поделиться