c#如何使Enum成为一个开关

本文关键字:一个 开关 何使 Enum | 更新日期: 2023-09-27 18:09:22

如何在开关情况下使用enum值?下面是我的代码:

    //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,这样按钮就可以知道哪个操作是正确的

c#如何使Enum成为一个开关

您当前的示例方法已将值硬编码为"Mult",但我认为这将在您的实际实现中更改。

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

switch(value)

下面是你要找的。

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

在你的switch语句中,你使用你要打开的值的变量——在你的例子中是value。

double rat;
string M;
public enum operations 
{
    add = 1,
    sub,
    mult,
    div
} ;
bool NewText = false;
operations value;
private void btnmult_Click(object sender, EventArgs e)
{
    //Button "*"  
    value = operations.mult;
    rat = Convert.ToDouble(result.Text);
    label1.Text = rat + " *";
    result.Text = "";
    }
private void EqualButton_Click(object sender, EventArgs e)
{
    switch (value) // use a variable at this point
    {            
        case operations.mult: //multiplication
            TheEqualMult(rat);
            label1.Text = "";
            break;
        case operations.add: //addition
            ....
            break;
        case operations.sub: //subtraction
            ....
            break;
        case operations.div: //division
            ....
            break;
        default: //invalid operation
            ....
            break;
    }
}

请注意,在上面的代码中,value将默认为零-实际上是一个无效的enum -因此您需要在末尾使用默认值。

在括号之间你不使用"操作"(这是一个类型),而是一个变量(你在5行之前命名为"值")。此外,在某些情况下(在麻烦行之后的两行),您不需要使用括号(它们不会造成伤害,除了与您合作的其他人)