输入验证与整数和int.tryparse

时间:2018-12-27 22:49:04

标签: c#

所以我几乎有2k行代码,并且我忘记了/我不知道如何在用户输入(例如)上进行输入验证

cw("Hello Please Enter your age");
                cw("If you are in a Group Input the Age of the Youngest Member of the Group.");
                Age = Convert.ToInt32(Console.ReadLine());

我想这样做,以便用户只能输入数字,并且当我放入其他东西时我的程序不会崩溃。

这是我整个console.readlines程序中的常见问题。

是否有一种方法可以在批准时仅对数字和字母引入输入验证?

先谢谢您。

1 个答案:

答案 0 :(得分:0)

这就是我要做的(多一点抛光之后):

 public static bool PromptForInt(string promptString, out int result, string helpString = null)
 {
     while (true)
     {
         Console.WriteLine(promptString);
         var response = Console.ReadLine();
         if (string.Equals(response, "Q", StringComparison.OrdinalIgnoreCase))
         {
             result = 0;
             return false;
         }

         if (helpString != null && string.Equals(response, "H", StringComparison.InvariantCultureIgnoreCase))
         {
             Console.WriteLine(helpString);
             continue;   //skip back to the top of the loop
         }

         if (int.TryParse(response, out result))
         {
             return true;
         }
     }
 }

您可以将其他类型(例如,doubleDateTime)的相似功能正确使用,始终使用typeName.TryParse。 在抛光方面,如果用户未输入“ Q”,“ H”或有效的int,则可能需要一条有用的错误消息。否则...