考虑到以下标志,
[Flags]
public enum Operations
{
add = 1,
subtract = 2,
multiply = 4,
divide = 8,
eval = 16,
}
我该如何实现IF条件来执行每个操作?在我的尝试中,第一个条件对于add, eval是正确的。然而,第一个条件也对于subtract, 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;
}
我看不出问题在哪里。