我是编程新手,并刚上了第一门课程,即编程基础知识,在目前的家庭作业中,我遇到了一个我无法解决的问题。
问题是-“一袋饼干可容纳40个饼干。袋中的卡路里信息声称袋中有10份,每份等于300卡路里。创建一个应用程序,让用户输入Cookie的数量他或她实际上吃了东西,然后报告了所消耗的卡路里数量。”
我的表单:
我在不调试的情况下运行时遇到的错误:
//下面是我的代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Calorie_Counter
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int cookies = int.Parse(textBox1.Text);
int calories = (cookies * 75);
textBox2.Text = calories.ToString();
}
}
}
使用int.Parse()
方法时遇到此问题。此方法只是将您作为string
传递给它的内容转换为int
。因此,将转换"33"
之类的内容,但是如果您输入的内容显然不是integer
之类的内容,例如"X"
甚至是空字符串,该怎么办?
因此,在12
类型中将其转换为int
的值没问题。
int parseResultGood = int.Parse("33");
但是这将失败并引发异常,因为显然"x"
无法转换为整数。
int parseResultGood = int.Parse("x");
不过幸运的是,C#
为您提供了另一种更好地处理此问题的方法,即int.TryPrase()
方法。顾名思义,它解析值,并仅在可能的情况下将其转换为int
,然后在out
参数中将其发送回给您。如果转换失败,例如,因为您传递了一个非整数值作为return true
,则它将为string
,并且return false
参数的值将为out
。因此,基于zero
的返回值,您可以知道转换是否成功,并且不会引发异常。true/false
但是,我建议您学习调试程序。如果这样做,您将能够自己解决问题。评论中链接到的文章很棒,请关注。祝你好运!