我正在尝试在添加按钮后添加代码,我的代码就是这样:
class CalculateValues
{
private int _num1;
private int _num2;
public int Num1
{
get
{
return _num1;
}
set
{
_num1 = value;
}
}
public int Num2
{
get
{
return _num2;
}
set
{
_num2 = value;
}
}
public virtual int calculate()
{
return _num1 + _num2;
}
}
以下是包含按钮的其他代码:
public partial class Form2 : Form
{
public Form2()
{
CalculateValues myAdd = new CalculateValues();
MulitplyValues Add = new MulitplyValues();
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int total = myadd.Add(int.Parse(textBox1.Text), int.Parse(textBox2.Text));
MessageBox.Show(total.ToString());
}
但每次它告诉我'myAdd' does not exist in the current context
我不明白为什么它不起作用。我甚至尝试了几种不同的方式。
答案 0 :(得分:3)
这是一个范围问题。您在构造函数myAdd
中定义Form2()
,这意味着它只能在范围中使用:只有构造函数可以使用它,之后它就消失了。
如果您希望变量保持不变,请将其移至类范围。
我建议阅读this article
答案 1 :(得分:1)
将myAdd
移至类范围。在您的代码中,myAdd
“只存在”ctor范围内。
public partial class Form2 : Form
CalculateValues myAdd; < ====
MulitplyValues Add; < ====
public Form2()
{
myAdd = new CalculateValues(); < ====
Add = new MulitplyValues(); < ====
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int total = myadd.Add(int.Parse(textBox1.Text), int.Parse(textBox2.Text));
MessageBox.Show(total.ToString());
}
}
与Add
答案 2 :(得分:1)
myAdd
本地作用于Form2
构造函数。相反,为该类声明它:
public partial class Form2 : Form
{
CalculateValues myAdd;
public Form2()
{
myAdd = new CalculateValues();
MulitplyValues Add = new MulitplyValues();
InitializeComponent();
}
答案 3 :(得分:1)
应该能够做到这样的事情:
public Form2()
{
CalculateValues myAdd = new CalculateValues();
MulitplyValues Add = new MulitplyValues();
InitializeComponent();
button.Click += (o,e)=> {
int total = myadd.Add(int.Parse(textBox1.Text), int.Parse(textBox2.Text));
MessageBox.Show(total.ToString());
}
}
检查这是否适合您。