我需要將這些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語句。 –