有一种更好的方法可以避免在Console.ReadLine中输入空值,而不是使用if语句。

时间:2020-11-04 04:17:20

标签: c# visual-studio console-application

到目前为止,所有代码都还不错,但是有一个更好的方法可以避免在Console.ReadLine中输入空值,我已经尝试过if语句,但是代码最终看起来像一团糟。

class ColocarMoedas
{
    public static void Colocar(MaquinaUsuario user)
    {
        int m1, m5, m10, m25, m50;

        Console.Clear();
        Console.WriteLine("/////////////////////////MOEDAS////////////////////////////");
        Console.Write("1 Centavo: ");
        m1 = int.Parse(Console.ReadLine());

        Console.Write("5 Centavo: ");
        m5 = int.Parse(Console.ReadLine());

        Console.Write("10 Centavo: ");
        m10 = int.Parse(Console.ReadLine());

        Console.Write("25 Centavo: ");
        m25 = int.Parse(Console.ReadLine());

        Console.Write("50 Centavo: ");
        m50 = int.Parse(Console.ReadLine());

        user.Adicionar(m1, m5, m10, m25, m50);

        Console.Clear();
    }
}

1 个答案:

答案 0 :(得分:1)

有一种更好的方法来避免在Console.ReadLine中输入空值 而不是if语句

答案是肯定的。

尽管值得注意的是,用户输入可能会出错,而不仅仅是null。实际上,null很少见,这是您需要担心的所有其他事情。

验证用户数字输入的最惯用方法是使用TryParse样式方法,当该方法返回值时,将返回 bool 不能进行解析并在out时通过true参数返回 value

Int32.TryParse Method

将数字的字符串表示形式转换为其32位带符号 等价的整数。返回值指示操作是否 成功。

您可以通过验证循环将其更进一步

int m1 = 0;
while (!int.TryParse(Console.ReadLine(), out m1))
   Console.WriteLine("You hard one job! Now try again");

从本质上说,虽然数字不能转换为整数,包括错别字,空输入和Ctrl + c(空),但请写一条消息。