有一种更好的方法可以避免Console.ReadLine中的null输入,而不是if语句



如果现在代码还可以,但有一种更好的方法可以避免Console.ReadLine中的null输入,我已经尝试过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();
}
}

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

答案是肯定的。

尽管值得注意的是,用户输入会出现更多问题,而不仅仅是null。事实上,null非常罕见,它是你需要担心的一切。

验证用户数字输入的最常用方法是使用TryParse样式的方法,当值无法解析时,返回bool,当true时,通过out参数返回

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(null(,但写一条消息。

最新更新