我试图制作一个BMI计算器,并且我在这行代码中得到了一个无效的恶习。
int heightInchToFoot = (12 * Convert.ToInt32(heightFtBox)) + Convert.ToInt32(heightInchBox);
我已将输入范围设置为heightFtBox和heightInchBox的数字,这两个都是文本块,因此我不知道为什么会发生此异常。任何人都可以帮助我吗?
答案 0 :(得分:1)
您应该使用TextBlock的Text属性来获取内容。 尝试:
int heightInchToFoot = (12 * Convert.ToInt32(heightFtBox.Text)) + Convert.ToInt32(heightInchBox.Text);
答案 1 :(得分:0)
忘记Convert
类存在。它的方法接受object
参数,这有效地抵消了类型检查。
如果使用int.Parse
(或int.TryParse
进行本地错误处理)解析数值,编译器会在您尝试传递UI小部件而不是字符串时捕获您。正如Mark Peters指出的那样,你想要的字符串是小部件的Text
属性。
numerictype .Parse
函数还接受控制转换的区域设置的可选参数。