如果现在代码还可以,但有一种更好的方法可以避免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(,但写一条消息。