C#卡路里计数器

问题描述 投票:0回答:1

我是编程新手,并刚上了第一门课程,即编程基础知识,在目前的家庭作业中,我遇到了一个我无法解决的问题。

问题是-“一袋饼干可容纳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();
        }
    }
}
c# exception string-parsing
1个回答
0
投票

使用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

但是,我建议您学习调试程序。如果这样做,您将能够自己解决问题。评论中链接到的文章很棒,请关注。祝你好运!
© www.soinside.com 2019 - 2024. All rights reserved.