提示在switch中的case语句无法被访问?请问该怎么解决?

public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {

double s=Convert.ToDouble(textBox1.Text);
double js=0;
double d = Convert.ToDouble(textBox2.Text);
string z=Convert.ToString(comboBox1.SelectedItem);
switch ('z') {
case '*': js = s*d; break;
case '/': js = s/d; break;
case '+': js=s+d; break;
case '-': js=s-d; break;

}
textBox3.Text = Convert.ToString(js);
}
private void button2_Click(object sender, EventArgs e) {
textBox3.Text = textBox1.Text =textBox2.Text="";
}
}
}



泛舟湖上清波郎朗
浏览 425回答 3
3回答

桃花长相依

switch('z')不对,括号内要求是变量,因为你定义的Z是个从下拉框中选择的操作符是变量,你这是常量了。把单引号去掉就可以了。最好是在Switch{}最后加上Default: ""语句,祝你学习愉快

富国沪深

1、你的z已经是变量了,所以在switch中是不需要加引号的,而且switch 本身遍历的就是一个变量,不能放常量。2、你的z是一个string型的,case后面跟的单引号是字符型的,应该对应的用双引号吧,switch (parContainer.Controls[index].GetType().Name){case "TextBox":parContainer.Controls[index].Text = "";break;}

慕仙森

你的数据类型转换有问题,要么全是string 类型,或者是双精度浮点型,或者是整型。
打开App,查看更多内容
随时随地看视频慕课网APP