我的switch语句有问题。我不知道如何在C#中正确使用它。它给我错误CS0150,我不知道该如何处理。感谢您的帮助。谢谢。 代码被剪切。如果您看到的括号比正常情况少,请不要提醒我。
int e = 0;
string caseslol;
string multi = "multi";
Console.WriteLine("Hi there!");
Console.WriteLine("Do you want to write a number so I can do cool things with it ??");
Console.WriteLine("Write yes to say YES and no to say NO");
string str1 = Console.ReadLine();
if (str1.Contains("yes") == true)
{
Console.WriteLine("Enter it please");
e = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("lol, we got it!");
Console.WriteLine("you wrote this : {0}", e);
Console.WriteLine("Now that we got it, we can do cool stuff!");
Console.WriteLine("Do you want to know what is this stuff ???");
string yesorno = Console.ReadLine();
if (yesorno.Contains("yes") == true)
{
Console.WriteLine("OK");
Console.WriteLine("We can do calculating stuff with your number");
Console.WriteLine("Soo much cool, right ???");
string yesorno2 = Console.ReadLine();
if (yesorno2.Contains("yes"))
{
Console.WriteLine("Choose first another number and write it");
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("So let's start with what ???");
switch (caseslol)
{
case multi:
Console.WriteLine(e * b);
}
}
}
//这是输出:
error CS0150:A constant value is expected
Compilation failed: 1 error(s), 0 warnings
compiler exit status 1
答案 0 :(得分:1)
您不能为case
使用类似的变量,而必须使用常量。
因此,除了将变量multi
放在case语句中之外,您可以使用字符串"multi"
(这是您始终为变量分配的值)。
答案 1 :(得分:0)
case
只能与常量一起使用。应该是
private const string multi = "multi";
switch (caseslol)
{
case multi:
Console.WriteLine(e * b);
// you also need this
break;
}
或者您直接做
switch (caseslol)
{
case "multi":
Console.WriteLine(e * b);
// you also need this
break;
}
或者您只需使用
if(string.Equals(caseslol, multi))
{
Console.WriteLine(e * b);
}
总的来说,我看不到caseslol
的位置...