接收用户输入然后将其转换为Int值

时间:2017-02-17 14:35:53

标签: c# string parsing int

因此,对于上课,我必须在C#中制作一个小BMI计算器,并且我遇到了一些麻烦。

所以我有2个文本框,weightTxt表示权重,heightTxt表示高度,但我似乎无法获得用户输入的值,我可以用于If-else语句。

这就是我将字符串转换为int的方法:

int weight = Int32.Parse(weightTxt.Text);
int height = Int32.Parse(heightTxt.Text);

在我看来,我认为这应该将每个框中的任何文本转换为int值,不是吗?

另外,在if语句中,为什么我不能用Int

做这样的事情
if (weight >= 300 || weight <= 10)
{
    MessageBox.Show("Input not acceptable");
}

非常感谢,是的我非常棒,请帮助我:)。

编辑:这就是我的整个.cs看起来像

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void label1_Click(object sender, EventArgs e)
    {

    }

    private void label2_Click(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {


        int weight = Int32.TryParse(weightTxt.Text);
        int height = Int32.TryParse(heightTxt.Text);

        if (weight >= 300)
        {
            MessageBox.Show("Input not acceptable");
        }
        else
        {
            //do nothing?
        }

    }
}

}

3 个答案:

答案 0 :(得分:1)

使用完整验证可以做到这一点。

LIKE

答案 1 :(得分:0)

解析是正确的!:

int weight = Int32.Parse(weightTxt.Text);
int height = Int32.Parse(heightTxt.Text);

您可以这样做:

if (weight >= 300 || weight <= 10)
{
    MessageBox.Show("Input not acceptable");
}

除非变量weight在另一个方法中被声明为局部变量!例如:

void method1()
{
    int weight = Int32.Parse(weightTxt.Text);
    int height = Int32.Parse(heightTxt.Text);
} 

您将无法在method2中使用它,因为它在此范围内不存在:

void method2()
{
    if (weight >= 300 || weight <= 10)
    {
        MessageBox.Show("Input not acceptable");
    }
}

此问题的解决方案是在类级别声明变量!

class Form1 : Form
{

    int weight;
    int height;

并通过类使用变量。但要注意不要再声明它们!

    void method1()
    {
        weight = Int32.Parse(weightTxt.Text);
        height = Int32.Parse(heightTxt.Text);
    } 

    void method2()
    {
        if (weight >= 300 || weight <= 10)
        {
            MessageBox.Show("Input not acceptable");
        }
    }

答案 2 :(得分:0)

唯一的错误似乎是使用TryParse。 请查找方法的签名:

_someLog = new HtmlTemplateLog("Resources/SomeEmailTemplate.html");
// ...code...
_someLog.WriteLineInSection("{someSection}", "This is a message!");
string finalHtml = _someLog.RenderLog();