我正在制作一个计算器,并且正在使用switch-case语句来确定用户单击按钮时的操作。当用户仅按下一个数字(0-9)时,我只想简单地将数字添加到当前字符串的末尾。尽管我想知道是否有一种更简单的方法来评估字符串是否是case
语句中的数字,但这是一项容易的任务。
换句话说,我可以简化以下内容吗?
case "0":
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
//code to execute here
我知道我可以早些时候调用TryParse
并运行一个单独的代码块,但是我想知道是否有一种方法可以完成诸如case myString.TryParse():
谢谢。
答案 0 :(得分:5)
当已经有简单的库可以处理这个问题时,您肯定会走很长一段路:)
尝试System.Char.IsDigit(numericChar)
还有许多其他方法可以轻松地做到这一点,只需在Google上搜索一下即可:)
答案 1 :(得分:1)
您可以尝试使用pattern matching,但是我认为指定为原始帖子应该更快,所以我不建议这样做,但实际上您可以按照要求进行操作:>
string a = "5";
switch (a)
{
case var digit when char.IsDigit(a[0]):
var intDigit = int.Parse(digit);
...
break;
...
<other cases>
}
答案 2 :(得分:0)
switch语句不适合查找多个可能的值,最好使用一堆if else语句
if(Char.IsDigit(inputString))
{
}
else if(someCondition)
{
}
else if(someCondition2)
{
}