Сравнение флагов C # Enum

Учитывая следующие флаги,

  [Flags]
    public enum Operations
    {
        add = 1,
        subtract = 2,
        multiply = 4,
        divide = 8,
        eval = 16,
    }

Как я могу реализовать условие IF для выполнения каждой операции? В моей попытке первое условие верно длядобавить, eval, что правильно. Однако первое условие также верно длявычитать, eval, что неверно.

        public double Evaluate(double input)
    {
        if ((operation & (Operations.add & Operations.eval)) == (Operations.add & Operations.eval))
            currentResult += input;
        else if ((operation & (Operations.subtract & Operations.eval)) == (Operations.subtract & Operations.eval))
            currentResult -= input;
        else
            currentResult = input;

        operation = null;

        return currentResult;
    }

Я не вижу, в чем проблема.

Ответы на вопрос(5)

Ваш ответ на вопрос