我需要将这些If语句转换为Switch-case语句。我遇到语法错误。我尝试使用smth。如:如何将这些if语句转换为switch-case C#
switch(field.text){
case field.text.contains("+"):
field.text=a+b;
break;
}
但“field.text.contains(”+“)”有语法错误。
我需要帮助。 这是我的代码:
这是计算器应用程序,做简单的2个操作符数学。
这是拆分字符串2以便找到2个输入的数字的方法:
public void GetNumbers(ref string first, ref string second, int place, out int firstNumber, out int secondNumber)
{
if (place > 0)
{
first = ResultFiled.Text.Substring(0, place);
second = ResultFiled.Text.Substring(place + 1);
}
Int32.TryParse(first, out firstNumber);
Int32.TryParse(second, out secondNumber);
}
private void Calculate_Click(object sender, EventArgs e)
{
string first = null;
string second = null;
int result = 0;
int place = 0;
int firstNumber = 0;
int secondNumber = 0;
识别操作者在计算器的形式输入的数字,然后找到它在哪里。将字符串拆分为2,找到第一个和最后一个数字。然后做数学运算。
添加2号
if (ResultFiled.Text.Contains("+"))
{
place = ResultFiled.Text.IndexOf("+");
GetNumbers(ref first, ref second, place, out firstNumber, out secondNumber);
result = firstNumber + secondNumber;
ResultFiled.Text = result.ToString();
}
else
{
减去2号
if (ResultFiled.Text.Contains("-"))
{
place = ResultFiled.Text.IndexOf("-");
GetNumbers(ref first, ref second, place, out firstNumber, out secondNumber);
result = firstNumber - secondNumber;
ResultFiled.Text = Convert.ToString(result);
}
else
{
乘2号
if (ResultFiled.Text.Contains("*"))
{
place = ResultFiled.Text.IndexOf("*");
GetNumbers(ref first, ref second, place, out firstNumber, out secondNumber);
result = firstNumber * secondNumber;
ResultFiled.Text = Convert.ToString(result);
}
else
{
除以2号
if (ResultFiled.Text.Contains("/"))
{
place = ResultFiled.Text.IndexOf("/");
GetNumbers(ref first, ref second, place, out firstNumber, out secondNumber);
try
{
result = firstNumber/secondNumber;
}
catch (DivideByZeroException exc)
{
MessageBox.Show(exc.Message);
}
ResultFiled.Text = Convert.ToString(result);
}
}
}
}
}
为什么哟你需要他们成为转换语句? – juharr
你不能。至少不是直接的。 c#switch语句只能使用常量(直到c#7)。 –
任何半面体表达式解析器应该有[词法分析器](https://en.wikipedia.org/wiki/Lexical_analysis)。在语法元素中分割输入字符串并将它们分配给* enum *以对元素进行分类的代码。现在一切都变得简单了,包括编写switch语句。 –