我是初学者,所以如果这是一个愚蠢的问题,我深表歉意。我只是想减少 if、else if 和 else 语句的数量,并使其使用 switch 语句或其他语句。我尝试使用 switch 语句,但似乎它们不能使用 ConsoleKey 变量。
我基本上想要这样的东西
var userIn = Console.ReadKey().Key;
switch (userIn)
{
case ConsoleKey.X: //If user input is X
//Do smthn
break;
case ConsoleKey.Z:
//Do smthn
break;
default:
//Smthn
break;
}
再说一遍,我还是个初学者所以是的
首先我尝试写 case :,但这没有用。 然后我尝试将 ConsoleKey.Y 和其他输入存储在变量中,然后编写 case ,但这不起作用。
它显示了这些错误,
控件无法从一个案例标签(“案例 ConsoleKey.Y:”)落入另一个案例标签 CS0163 无法将类型“System.ConsoleKey”隐式转换为“System.ConsoleKeyInfo”CS0029
这是我尝试过的: 该代码基本上是与监狱牢房中的对象进行交互。
var jCellIntyuio = Console.ReadKey();
switch(jCellIntyuio)
{
case ConsoleKey.Y:
jcToilet.ObjInfo(); //Method which gives info on object
case ConsoleKey.U:
WashBasin.ObjInfo();
case ConsoleKey.I:
BunkBed.ObjInfo(); //Method which gives info on object
case ConsoleKey.U:
JailWalls.ObjInfo();
}
您应该在开关中写入“jCellIntyuio.Key”,还应该添加中断和默认参数。代码应该是这样的;
switch (jCellIntyuio.Key)
{
case ConsoleKey.Y:
jcToilet.ObjInfo(); break; //Method which gives info on object
case ConsoleKey.U:
WashBasin.ObjInfo(); break;
case ConsoleKey.I:
BunkBed.ObjInfo(); break;//Method which gives info on object
case ConsoleKey.U:
JailWalls.ObjInfo(); break;
default: break;
}