到目前为止,所有代码都还不错,但是有一个更好的方法可以避免在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();
}
}
答案 0 :(得分:1)
有一种更好的方法来避免在
Console.ReadLine
中输入空值 而不是if语句
答案是肯定的。
尽管值得注意的是,用户输入可能会出错,而不仅仅是null
。实际上,null
很少见,这是您需要担心的所有其他事情。
验证用户数字输入的最惯用方法是使用TryParse
样式方法,当该方法返回值时,将返回 bool 不能进行解析并在out
时通过true
参数返回 value 。
将数字的字符串表示形式转换为其32位带符号 等价的整数。返回值指示操作是否 成功。
您可以通过验证循环将其更进一步
int m1 = 0;
while (!int.TryParse(Console.ReadLine(), out m1))
Console.WriteLine("You hard one job! Now try again");
从本质上说,虽然数字不能转换为整数,包括错别字,空输入和Ctrl + c(空),但请写一条消息。