C#中的简单计算器 我无法理解为什么在获取类Calculator中的任何输入时会出现异常
private ParallaxImageView background;
background = (ParallaxImageView) findViewById(R.id.background);
background.setImageResource(R.drawable.main_back);
@Override
public void onResume() {
background.registerSensorManager();
super.onResume();
}
@Override
public void onPause() {
background.unregisterSensorManager();
super.onPause();
}
我总是收到类似“FormatException:”的错误,将字符串转换为DateTime
答案 0 :(得分:1)
你的问题就在这一行
choice = Convert.ToChar(Console.Read());
这只从输入中读取一个字符,但如果按“1”,然后按回车键,则代码进入Add方法,然后立即检索在1之后按下的换行符。
这不是有效的整数,Convert.ToInt32失败。
更改为
string choice = Console.ReadLine().Trim();
并修改您的开关以处理字符串而不是字符
说,你需要为另一个问题改变你的代码。如果您尝试转换不是有效整数的输入,则Convert.ToInt32会失败并出现异常。您应该查看如何使用Int32.TryParse并在输入无效时采取适当的操作
例如
string sa, sb;
Console.WriteLine("Enter the first number:\n");
sa = Console.ReadLine().Trim();
if(!Int32.TryParse(sa, out a))
{
Console.WriteLine("Type a number");
return;
}