所以我几乎有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程序中的常见问题。
是否有一种方法可以在批准时仅对数字和字母引入输入验证?
先谢谢您。
答案 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;
}
}
}
您可以将其他类型(例如,double
或DateTime
)的相似功能正确使用,始终使用typeName.TryParse
。
在抛光方面,如果用户未输入“ Q”,“ H”或有效的int
,则可能需要一条有用的错误消息。否则...