因此,对于上课,我必须在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?
}
}
}
}
答案 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();