C# 请更正我的代码,它只是不工作,MPG计算器
这是代码,请帮忙。它不起作用。有人答应过我会的。 我无法将文本框的字符串转换为int,因此无法进行所需的数学运算C# 请更正我的代码,它只是不工作,MPG计算器,c#,forms,textbox,C#,Forms,Textbox,这是代码,请帮忙。它不起作用。有人答应过我会的。 我无法将文本框的字符串转换为int,因此无法进行所需的数学运算 public Form1() { InitializeComponent(); } int userVal = int.Parse(Form1.textBox1.Text); private void button1_Click(object sender, EventArgs
public Form1()
{
InitializeComponent();
}
int userVal = int.Parse(Form1.textBox1.Text);
private void button1_Click(object sender, EventArgs e)
{
int answer = (Form1.textBox1 * Form1.textBox2);
MessageBox.Show("MPG: ", answer);
}
首先,这一行必须放在button1_Click函数中才能工作。但现在的问题是,您正在使用字符串输入来接受数字,这不是一个好主意,因为如果您键入“abc”,例如,int.Parse将抛出一个异常
现在您只需将textBox1和TextBox2替换为数字输入,然后使用以下代码:
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int answer = (numericalInput1.value * numbericalInput2.value);
MessageBox.Show("MPG: ", answer);
}
首先。您应该真正从基础开始,因为在您的代码中,您尝试将两个
TextBox
控件相乘,这是不可能的
其次。我更正了你的代码
Int32.TryParse(someString,out anInt)
尝试将第一个参数(someString)转换为Int32
,并返回一个关于转换是否成功的布尔值。如果转换成功,转换后的值将存储在第二个参数(anInt)中,并且Int32.TryParse(someString,out anInt)
返回true
在已更正的代码中,您只需尝试将字符串
s从两个文本框
es转换。如果您能够这样做(返回值Int32.TryParse
),只需将从Int32.TryParse
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int num1,num2;
If(Int32.TryParse(textBox1.Text,out num1) && Int32.TryParse(textBox2.Text,out num2))
{
int answer = num1 * num2;
string output = "MPG: "+ answer.ToString();
MessageBox.Show(output);
}
}
您没有使用userValTry,而是使用int.TryParse而不是int.Parse。当然,这不是这段代码的唯一问题。1)int userVal=int.Parse(Form1.textBox1.Text)代码>不能在方法或构造函数之外运行此代码。2) 为什么da hack是你的
textBox1
静态的?如果不是,则删除表格1
!3) 它不工作。
这是您可以给出的最糟糕的问题描述!你有编译错误吗?运行时错误?例外情况?告诉我们更多…无论如何这都会崩溃。什么是表格1?它是类名,在C#中,我们没有自动表单实例。您需要一个Form1的实例。第二,两个文本框的内容是什么。如果内容不能转换为整数,则Int.Parse将失败。例如,空字符串1。他只是没有包括公共部分类Form1:Form。另外,他可能正在使用VisualStudio表单所见即所得编辑器,该编辑器处理表单实例。2.我同意,他应该使用数字输入,因为我忘记了名称、NumericUpDownVal或其他内容。@Laurent如果你想访问类中的元素,请使用this
关键字,但在大多数情况下,这是不必要的。是的,我没有注意到他这样做了@schgab。顺便说一下,我编辑了我的答案。@MongZhu谢谢你的反馈。再次编辑我的答案,解释代码是如何工作的。
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int num1,num2;
If(Int32.TryParse(textBox1.Text,out num1) && Int32.TryParse(textBox2.Text,out num2))
{
int answer = num1 * num2;
string output = "MPG: "+ answer.ToString();
MessageBox.Show(output);
}
}