我有一些执行问题,其中相同的功能不能以相同的方式工作
while(mano.Count != 0) // inizio partita
{
int count = 0;
scelta = Convert.ToInt32(Console.Read()) -48;
string res = cl.Colleziona(mano[scelta - 1], ID);
while (res == "Non e' il tuo turno" || res.StartsWith("Il tuo avversario ha giocato: "))
{
if (res.StartsWith("Il tuo avversario ha giocato: "))
{
Console.WriteLine(res + ", seleziona di nuovo una carta: ");
scelta = Convert.ToInt32(Console.Read()); //here gives the error
res = cl.Colleziona(mano[scelta-1], ID);
Console.WriteLine(res);
break;
}
else if (count == 0)
{
Console.WriteLine(res);
count++;
}
System.Threading.Thread.Sleep(200);
res = cl.Colleziona(mano[scelta - 1], ID);
}
mano.Remove(mano[scelta-1]);
ris = cl.partita();
while (ris == null)
{
System.Threading.Thread.Sleep(200);
ris = cl.partita();
}
注释函数返回13而不是让我输入内容,在连续函数上给出OutOfRangeException,任何解决方案?
由于
答案 0 :(得分:0)
您似乎想要致电Console.ReadLine
。这会将整行返回为字符串,而Console.Read
返回一个表示一次一个字符的int。
在这种情况下,13表示回车 - 您可能在输入第一位输入后按Enter键。
This question更详细地介绍了各种Console.ReadX
方法之间的差异。