繁体   English   中英

验证用户输入C#(控制台)

[英]Validate user input C# (console)

我有以下代码:

aVariable =  int.Parse(Console.ReadLine());

我遇到的一个问题是我找不到任何支持材料来帮助验证用户输入,例如,如果用户按下了字母a,这只会杀死程序。

我能做什么? 我在哪里可以找到一个体面的教程?

而不是使用Parse方法而是使用TryParse

int age;

bool isValidInt = int.TryParse(Console.ReadLine(), out age);

你可以使用TryParse ..只需谷歌这个方法。 或者您可以捕获异常以防止程序崩溃

当无法解析字符串时,int.Parse抛出FormatException。 您可以捕获此异常并处理它,例如显示错误消息。

另一种方法是使用TryParse:

int number = 0;
bool result = Int32.TryParse(value, out number);
if (result)
{
   Console.WriteLine("Converted '{0}' to {1}.", value, number);         
}

验证用户输入在控制台应用程序中与在Winforms应用程序中的用户输入没有区别。 它与在ASP.NET应用程序中验证用户输入非常相似,只是您没有很好的验证控件。

如果您来自ASP.NET背景,请查看人们如何使用CustomValidators - 注意代码隐藏并忽略客户端验证。

此外,您可以像在ASP.NET应用程序中一样轻松地在Console应用程序中使用RegularExpressions。

可能没有专门针对控制台应用程序提及验证的原因是输入验证是对输入的验证。 这些方法几乎无处不在。 与ASP.NET相比,唯一的区别是存在自定义控件,可以帮助您完成。

请改用Int32.TryParse并测试成功的Int32.TryParse

Int32 val;
if (Int32.TryParse(userInput, out val))
{
  // val is now the user input as an integer
}
else
{
  // bad user input
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM