好吧,小问题。我知道。基本反应可能是

Convert.ToInt32(string);


但是自然地,C#会执行所有自然过程以确保不会发生这种情况。

这是我的代码:

            while (true)
            {

                while (true)
                {
                    //ask for time
                    Console.WriteLine("What is the hour?");
                    Console.WriteLine();
                    string s = Console.ReadLine();
                    //convert input to int
                    YourTime.nHour = Convert.ToInt32(s);
                    //check to see if it's legal
                    if ((YourTime.nHour <= 12) || (YourTime.nHour > 0))
                    {
                        break;
                    }
                //etc etc code
                }
            }


我想确保输入的是实际小时。当我运行此代码时,即使我输入了-13或99之类的信息,它也始终将if()语句标记为“ true”并中断。

我敢肯定有一个简单的替代“ Convert.ToInt32(s);”,但是说实话,似乎我已经尝试了一切。我认为最好遵循知道手头代码的人的逐步说明。

[编辑]-错误的运算符,而不是转换。感谢所有提供帮助的人!

最佳答案

是您的if语句无效,而不是Convert.ToInt32

if ((YourTime.nHour <= 12) || (YourTime.nHour > 0))将始终为真。我想你打算做if ((YourTime.nHour <= 12) && (YourTime.nHour > 0))

10-06 12:59