我正在尝试使用switch
:
private void btnInput1Rste_Click(object sender, EventArgs e)
{
switch (sender == btnInput1Rste)
{
case "1": currentButtonPressedRste = 1;
break;
}
}
它给出如下错误:
can't convert type 'string' to 'bool'
但是,当我尝试将其转换为布尔值时,它会说:
a constant value is expected
。
我该如何解决?
当它工作时,它应该检查3个值。 (不只是这个switch
)
答案 0 :(得分:5)
sender == btnInput1Rste
是一个布尔表达式;结果是true
或false
。坦率地说,你可能只想要if
/ else
。您可能可以使用switch
进行case true:
但是......
答案 1 :(得分:2)
你的开关格式奇怪,我想你想看看btnInput1Rste
是否等于发件人?你也没有默认情况。
switch (sender)
{
case btnInput1Rste:
//This button was the sender
break;
default:
break;
}
答案 2 :(得分:0)
这是问题所在。 switch语句的括号中的任何类型都必须与case的类型相匹配。在这里,括号中有一个布尔值。您的情况是检查字符串类型。 Bool和字符串不能隐式转换为彼此,因此错误。
答案 3 :(得分:0)
选项1使用switch,我们假设你的btnInput1Rste是一个const字符串,如:
//..
public const string btnInput1Rste= "some_value";
///...then this should work:
switch (sender)
{
case btnInput1Rste:
//enter code here
break;
}
选项2,其中btnInput1Rste不必是常量字符串:
if(sender == btnInput1Rste){
//enter code here
}