C#如何将Enum作为开关?

时间:2016-09-28 15:52:21

标签: c# enums switch-statement calculator

如何在交换机案例中使用枚举值? 这是我的代码:

    //public Variables        
    double rat;
    string M;
    public enum operations {add = 1, sub = 2, mult = 3, div = 4} ;
    bool NewText = false;

    private void btnmult_Click(object sender, EventArgs e)
    {
        //Button "*"  
        operations value = operations.mult;
        rat = Convert.ToDouble(result.Text);
        label1.Text = rat + " *";
        result.Text = "";
    }
      private void EqualButton_Click(object sender, EventArgs e)
    {
        switch (operations) // this is the point which is am confused at
        {            
            case (operations.mult): //multiplyication
                TheEqualMult(rat);
                label1.Text = "";
                break;
        }
    }

现在在()之间的单词切换之后应该写什么?我要输入的是枚举值,它指的是1或2或3或4,因此按钮可以知道哪个是正确的操作。

3 个答案:

答案 0 :(得分:2)

您当前的示例方法的值已硬编码为" Mult"但我认为在实际实施中会有所改变。

假设"价值"包含与单击的按钮对应的枚举值,您的Switch语句应该打开该变量:

switch(value)

答案 1 :(得分:0)

在括号中,您不使用“操作”(这是一种类型)而是使用变量(您之前将其命名为“值”5行)。 同样在这种情况下(麻烦线之后的两行)你不需要使用括号(除了与你合作的其他人,它们不会造成伤害)

答案 2 :(得分:0)

以下是您正在寻找的内容。

请注意,在声明枚举时,将以递增方式自动分配值。默认情况下,第一个值为零,除非您覆盖它。

在你的switch语句中,你使用你正在接通其值的变量 - 在你的案例值中。

"d"

请注意,在上面的代码中,值默认为零 - 实际上是一个无效的枚举 - 所以你需要最后的默认值。