Console.read();不允许我输入任何值并将变量值设置为13

时间:2017-03-17 07:41:27

标签: c# console

我有一些执行问题,其中相同的功能不能以相同的方式工作

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,任何解决方案?

由于

1 个答案:

答案 0 :(得分:0)

您似乎想要致电Console.ReadLine。这会将整行返回为字符串,而Console.Read返回一个表示一次一个字符的int。

在这种情况下,13表示回车 - 您可能在输入第一位输入后按Enter键。

This question更详细地介绍了各种Console.ReadX方法之间的差异。