【发布时间】:2016-07-07 17:07:23
【问题描述】:
我使用 C# 编写了一个小型控制台应用程序以开始使用该语言。我的目标是向用户询问以下内容:
- 名字
- 姓氏
- 出生年份
- 出生月份
- 出生日期
我已将所有输入字段设置如下:
System.Console.Write("Name: ");
String name = System.Console.ReadLine();
最后,应用程序将数据保存到 .txt 文件中,如果给定的数据有效。我需要检查名称字段的长度是否在 1-30 之间,并且日期输入仅接受其相应限制内的数字答案(例如:您只能为 'month' 提供 1-12 之间的值..)
我尝试搜索不同的验证方法,但我不知道如何将它们组合在一起并为此应用程序创建一个干净的“检查器”部分。
这是验证我的名字和姓氏字段的原因,但我认为您不能将日期字段放在同一个检查中?
public static Boolean Checker(String check)
{
if (check.Length <= 30 && check.Length > 0)
{
return true;
}
return false;
}
有什么建议吗?
【问题讨论】:
-
你能用regex - 正则表达式吗?
-
您想要一种方法来检查所有用户输入参数吗?还是每个人一个?
-
在不知道字符串代表什么的情况下无法解析日期、数字和字符串的验证
-
@MongZhu 最好是一种方法,因为如果唯一的条件是检查器返回true,那么运行.txt文件写入会更容易。
-
我会首先在每个输入(年、月、日)上使用
int.TryParse(),如果其中任何一个实际上不是数字,则会立即失败。然后检查该值是否在有效范围内(1-30、1-12、1-2016),然后才会尝试使用DateTime.TryParse()检查日期的实际有效性