【问题标题】:Invalid expression in Case Switch大小写切换中的无效表达式
【发布时间】:2014-10-15 22:53:45
【问题描述】:

这让我整天发疯。

private void BtnMix_Click(object sender, EventArgs e)
{
   //Declare the variables to be used in the process
    String Color1;
    String Color2;

    //Determine whether or not a selection has been bade
    if (Colorlist1.SelectedIndex != -1 && ColorList2.SelectedIndex != -1) 
    {
        //Get the selected colors
        Color1 = Colorlist1.SelectedItem.ToString();
        Color2 = ColorList2.SelectedItem.ToString();

        //Determine the correct result
        switch (Color1 +|+ Color2)
        {
            case "Red|Red":
                lblResult.Text = "Red";
                break;
            case "Red|Blue":
                Lblresult.text ="Purple";
                break;
            case "Red|Yellow":
                lblresult.text = "Orange";
                break;
            case "Blue|Red":
                lblresult.text = "Purple";
                break;
            case "Blue|Blue":
                lblresult.text = "Blue";
                break;
            case "Blue|Yellow":
                lblresult.text = "Green";
                break;
            case "Yellow|Red":
                lblresult.text = "Orange";
                break;
            case "Yellow|Blue":
                lblresult.text = "Green";
                break;
            case "Yellow|Yellow":
                lblresult.text = "Yellow";
                break;
        }
    }
    else
    {
        MessageBox.Show("Please select two colors");
    }
}

我知道我错过了一些非常简单的事情,但对于我的生活,我无法弄清楚。到目前为止,我已经设法让一切“正常工作”,但最后一个错误似乎没有任何意义。 “术语 '|' 的表达式无效" 在第 15 行。

【问题讨论】:

  • 这不是您将其连接成字符串的方式。试试Color1 + "|" + Color2

标签: c# winforms switch-statement


【解决方案1】:

如果您愿意连接字符串,请使用

Color1 + "|" + Color2

所以,现在您的代码应该如下所示:

switch (Color1 + "|" + Color2)

此外,您将在第 21 行收到另一个错误,因为您在 Lblresult 中使用了大写“L”而不是小写“l”

【讨论】:

  • 我在此处询问之前尝试过,但它只会导致 lblresult 名称的每个实例都抛出“当前上下文中不存在”错误。
  • @iascaire 你的表单上有名为 lblResult 的标签吗?
  • 我愿意。该错误仅在进行此更改后发生。
  • 名称在 C# 中区分大小写。因此,只需从其属性 Window 中复制 lblResult 的名称并将其粘贴到您的代码中。
【解决方案2】:

它显示无效的表达式术语切换 课堂节目 { 静态无效主要() { int Totalcoffeecost = 0; 字符串 Userdecision = string.Empty; 做 { int 用户选择 =-1; 做 {

        Console.WriteLine("Please enter your coffee size: 1-small, 2-Medum,3-Large");
       userchoice = int.Parse(Console.ReadLine());
            }while(





     switch (userchoice)
        {
            case 1:
                Totalcoffeecost += 1;
                break;
            case 2:
                Totalcoffeecost += 2;
                break;
            case 3:
                Totalcoffeecost += 3;
                break;
            default:
                Console.WriteLine("Your choice {0} is invalid", userchoice);
                break;
        } 
        while(userchoice !=1 && userchoice !=2 && userchoice !=3)
            do
            {
                Console.WriteLine("Do you want to buy another coffee-Yes or No");
                string userdecision = "";
                userdecision = Console.ReadLine().ToUpper();
                if(userdecision != "Yes" && userdecision !="No")

                {
                    Console.WriteLine("your choice {0} is invalid. Please try again",userdecision);
                }
            }while(Userdecision != "Yes" && Userdecision != "No");
            }
        while(Userdecision.ToUpper()!="No");
        Console.WriteLine("Thank you for shopping with us");
        Console.WriteLine("Bill amount={0}",Totalcoffeecost );


        }
        }

【讨论】:

    猜你喜欢
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 2018-04-07
    • 1970-01-01
    • 2019-05-15
    • 2021-05-10
    相关资源
    最近更新 更多