c# - 打开字符串会跳过所有情况

标签 c# switch-statement

            Console.WriteLine(used+ "\n"+ extracted[used]);
            switch (extracted[used])
            {
                case "*": result = number1 * number2; break;
                case "/": result = number1 / number2; break;
                case "+": result = number1 + number2; break;
                case "-": result = number1 - number2; break;
                default: Console.WriteLine("Error - Could not assign starting value."); break;
            }
            Console.WriteLine("Marker 3");
            Console.WriteLine(result);

此代码段产生输出:

1

+

错误 - 无法分配起始值。

标记 3

0

为什么会这样?在输出的第二行,程序打印出 extracted[used] 的值为“+”,但 switch 语句未能转到 case“+”,而是转到 default,并打印出错误,以及然后打印出“结果”的占位符值。如果重要的话,提取的是一个字符串数组。

最佳答案

尝试切换extracted[used].Trim(),你会得到正确的开关。

Console.WriteLine(used+ "\n<<<"+ extracted[used] + ">>>");
switch (extracted[used].Trim())
{
    case "*": result = number1 * number2; break;
    case "/": result = number1 / number2; break;
    case "+": result = number1 + number2; break;
    case "-": result = number1 - number2; break;
    default: Console.WriteLine("Error - Could not assign starting value."); break;
}
Console.WriteLine("Marker 3");
Console.WriteLine(result); 

关于c# - 打开字符串会跳过所有情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6967522/

相关文章:

c# - 保存到 Active Directory - 拒绝域管理员访问

c# - 如何在2.0构建的应用程序中使用WCF wsHttpBinding服务?

c - while 循环两次后跳过 switch 语句

c# - 一次将格式应用于多个 Excel 单元格

c# - 如何统一显示网格线?

java - 当用户输入的号码不存在时如何捕获 Switch 语句中的错误

c - "or"逻辑的switch语句怎么写?

java - 在 switch 语句中使用 Math.signum(x) 还是 Integer.compare(x, 0) 更好?

java - 尽管类在 switch block 中实例化,但它只能调用接口(interface)方法

c# - 如何将仅限 XAML 的资源放在 DLL(引用)文件中以供 WPF 应用程序使用?