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

C#-如何处理空用户输入?,c#,compiler-errors,C#,Compiler Errors,大家好,我还是编程的初学者。所以我的问题是如何在我的简单代码中处理空的用户输入?每次我按enter键时,如果没有输入值,就会出现错误。 我的代码: 有什么想法吗?谢谢。试试下面的方法 string line = Console.ReadLine(); if(!string.IsNullOrEmpty(line)){ //Non empty input }else{ //Handle here } 您有两个选择: 使用TryParse而不是Parse。这样就不会引发异常,您可以测试该值是否

大家好,我还是编程的初学者。所以我的问题是如何在我的简单代码中处理空的用户输入?每次我按enter键时,如果没有输入值,就会出现错误。 我的代码:


有什么想法吗?谢谢。

试试下面的方法

string line = Console.ReadLine();

if(!string.IsNullOrEmpty(line)){
 //Non empty input
}else{
 //Handle here
}
您有两个选择:

  • 使用
    TryParse
    而不是
    Parse
    。这样就不会引发异常,您可以测试该值是否有效,如果无效,请再次询问

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

  • 在第一种情况下,您将得到如下结果:

    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
    }
    
    第二种情况是:

    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
    }
    

    您可以使用该方法检查空用户输入。此方法检查任何输入上是否有空格或空输入

    您可以这样检查输入:

    if (string.IsNullOrWhiteSpace(line))
    {
       ...//parse
    }
    
    但是,由于您正在解析整数,因此可能需要使用函数来解析数据。它将返回一个布尔值,指示输入是否已成功解析

    int i =0;
    if (Int32.TryParse(Console.ReadLine(), out i))
    {
      ...//continue
    }
    
    尝试改用int.TryParse()——如果解析失败,可以循环要求用户重新输入