确保用户输入正确的数据类型。 c#Console App

时间:2017-05-21 09:34:53

标签: c#

C#初学者,目前正在使用控制台应用程序。如果我说要求用户输入日期,但他们输入的字符串无法转换为日期时间,我怎样才能确保他们被要求再次尝试?我知道这很容易通过if / else语句,但如果一个应用程序有数百个这样的问题,那么同样数百个if语句只是为了查看数据类型是否正确似乎是不对的。有没有内置的我错过了或者“黑客”来执行此操作?

e.g

Console.WriteLine("What is your birthday");

Datetime bday = Convert.ToDateTime(Console.ReadLine());

用户输入说“dfio”。

3 个答案:

答案 0 :(得分:1)

你可以写一个像

这样的函数
x

并多次使用。

在您的情况下(public static int GetInt() { int X; String Result = Console.ReadLine(); while(!Int32.TryParse(Result, out X)) { Console.WriteLine("Not a valid Int, try again!"); Result = Console.ReadLine(); } return X; } ),您只需将代码更改为

DateTime

答案 1 :(得分:1)

bool valid = false;
DateTime bday;
while(!valid){
  Console.WriteLine("What is your birthday");
  string input = Console.ReadLine();

  if (DateTime.TryParse(input, out bday))
  { 
    Console.WriteLine("Invalid Date");
    valid = true;
  }
}

这将循环,直到输入有效的DateTime。

This文档页面将帮助您为解析器提供自定义格式。

这只是这个特定输入的解决方案。

答案 2 :(得分:0)

使用ToString()方法将输入作为字符串。 Datetime bday = Convert.ToDateTime(Console.ReadLine()。ToString());