如何在交换机案例中使用枚举值? 这是我的代码:
//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,因此按钮可以知道哪个是正确的操作。
答案 0 :(得分:2)
您当前的示例方法的值已硬编码为" Mult"但我认为在实际实施中会有所改变。
假设"价值"包含与单击的按钮对应的枚举值,您的Switch语句应该打开该变量:
switch(value)
答案 1 :(得分:0)
在括号中,您不使用“操作”(这是一种类型)而是使用变量(您之前将其命名为“值”5行)。 同样在这种情况下(麻烦线之后的两行)你不需要使用括号(除了与你合作的其他人,它们不会造成伤害)
答案 2 :(得分:0)
以下是您正在寻找的内容。
请注意,在声明枚举时,将以递增方式自动分配值。默认情况下,第一个值为零,除非您覆盖它。
在你的switch语句中,你使用你正在接通其值的变量 - 在你的案例值中。
"d"
请注意,在上面的代码中,值默认为零 - 实际上是一个无效的枚举 - 所以你需要最后的默认值。