C# - 如何处理空用户输入?

时间:2015-06-04 21:37:56

标签: c# compiler-errors

大家好,我一般都是编程的初学者。所以我的问题是如何在我的简单代码中处理空的用户输入?每次按下输入时都会给出我的错误。 我的代码:

contactToUpdate.Last_Advisor_Touch__c = new Da​ te();

任何想法?感谢。

4 个答案:

答案 0 :(得分:0)

尝试类似以下内容

string line = Console.ReadLine();

if(!string.IsNullOrEmpty(line)){
 //Non empty input
}else{
 //Handle here
}

答案 1 :(得分:0)

您有两种选择:

  1. 使用TryParse代替Parse。这样就不会抛出异常,您可以测试该值是否有效,如果没有则再次询问。

  2. 将代码包装在try catch块中,以便优雅地处理异常,并要求用户重试。

  3. 在第一种情况下,您最终得到的结果如下:

    static void Main (String[] args)
    {
        int i;
        Console.Write (" Enter a number: ");
        bool result = int.TryParse(Console.ReadLine(), out i);
        if (result)
        {
            // your normal code
        }
        else
        {
            Console.WriteLine("That wasn't a number.");
        }
    }
    

    在第二种情况下,它将类似于:

    static void Main (String[] args)
    {
        int i;
        try
        {
            Console.Write (" Enter a number: ");
            i = int.parse (Console.ReadLine());
        }
        catch (Exception)
        {
            Console.WriteLine("That wasn't a number.");
            return;
        }
    
        // rest of your code
    }
    

答案 2 :(得分:0)

您可以使用String.IsNullOrWhiteSpace方法检查空用户输入。此方法检查任何输入上的空白空间或空输入。

您可以像这样查看输入:

if (string.IsNullOrWhiteSpace(line))
{
   ...//parse
}

由于您正在解析整数,因此您可能希望使用Int32.TryParse函数来解析数据。它将返回一个布尔值,指示输入是否已成功解析。

int i =0;
if (Int32.TryParse(Console.ReadLine(), out i))
{
  ...//continue
}

答案 3 :(得分:0)

    static void Main(string[] args)
    {
        int i;
        Console.Write(" Enter a number: ");

        if (Int32.TryParse(Console.ReadLine(), out i))
        {
            if (i % 2 == 0)
            {
                Console.Write(" The number is even");
            }
            else
            {
                Console.Write(" The number is odd");
            }
        }
        else
        {
            Console.Write(" You have to enter a number I can parse into an integer, dummy!");
        }
    }