鑑於以下標誌,C#枚舉標誌比較
[Flags]
public enum Operations
{
add = 1,
subtract = 2,
multiply = 4,
divide = 8,
eval = 16,
}
我怎麼能實現一個IF條件進行各項操作?在我的嘗試中,第一個條件是加,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;
}
我看不出是什麼問題。
只是我認爲[Flags]所顯示的操作不正確?我正在努力想到一個真實的世界樣本,我會在數學運算上顯示標誌...... – Sunny 2010-04-02 15:09:25
我同意Sunny。這些標誌應該代表一個計算器中的狀態。我不知道爲什麼我這樣做。回想起來,我現在不會這樣做。 – 2011-09-28 06:50:05
[如何在C#中比較標誌?]可能重複(http://stackoverflow.com/questions/40211/how-to-compare-flags-in-c) – 2015-10-26 14:01:38