【发布时间】:2015-04-22 02:39:45
【问题描述】:
我是 C# 的新手,想知道如何验证用户输入以满足以下要求:
- 必须是十进制类型。如果不是,它应该要求用户输入一个十进制值。 (我相信我已经在下面的代码中介绍过)
- 还必须在特定范围内 (1 - 1,000,000)。如果不是,则应要求用户输入正确范围内的数字
考虑到我将有多个用户输入以相同的方式进行验证,这样做最有效的方法是什么。
decimal balance;
Console.Write("Starting Balance: $");
while (!decimal.TryParse(Console.ReadLine(), out balance))
{
Console.Write("Please enter a valid decimal value: $");
}
以下编辑
这个怎么样?
decimal balance;
Console.Write("Starting Balance: $");
while(true)
{
if (!decimal.TryParse(Console.ReadLine(), out balance))
Console.Write("Please enter a valid decimal value: $");
else if (balance < 1 || balance > 100)
Console.Write("Please enter an amount between 1 and 100: ");
else
break;
}
Console.WriteLine("Balance entered is: " + balance.ToString("n"));
return val; 行给了我一个错误,所以我忽略了它,但上面的方法似乎有效?
【问题讨论】:
-
您使用的是哪种技术?表格? ASP.NET? ASP.NET MVC?如果可能,您可以尝试数据注释。
-
不确定您所说的 WinForms 是什么意思? ASP.NET?
-
我只是接受来自控制台的输入。
-
您正在创建一个应用程序。代码只是为应用程序提供逻辑。什么样的应用程序会使用你的代码?或者如果您使用的是 Visual Studio,您的项目类型是什么?
-
高效是什么意思?您可以修改您的 while 以满足您的范围要求:
while (!decimal.TryParse(Console.ReadLine(), out balance) || balance < 1 || balance > 1000000)
标签: c# validation loops input console-application