C# 将代码放在C中的按钮后面
我正在尝试在“添加”按钮后面添加代码我的代码如下:C# 将代码放在C中的按钮后面,c#,C#,我正在尝试在“添加”按钮后面添加代码我的代码如下: class CalculateValues { private int _num1; private int _num2; public int Num1 { get { return _num1; } set {
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”在当前上下文中不存在
我不明白为什么它不起作用。我甚至尝试了几种不同的方法。将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也有同样的问题,将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相同,这是一个范围问题。在构造函数Form2中定义myAdd,这意味着它只在该范围内可用:只有构造函数才能使用它,之后它就消失了 如果希望变量持久化,请将其移动到类范围
我建议阅读这是一个范围问题。在构造函数Form2中定义myAdd,这意味着它只在该范围内可用:只有构造函数才能使用它,之后它就消失了 如果希望变量持久化,请将其移动到类范围 我建议阅读myAdd的作用域为Form2构造函数的局部作用域。而是为类声明它:
public partial class Form2 : Form
{
CalculateValues myAdd;
public Form2()
{
myAdd = new CalculateValues();
MulitplyValues Add = new MulitplyValues();
InitializeComponent();
}
myAdd在本地作用域为Form2构造函数。而是为类声明它:
public partial class Form2 : Form
{
CalculateValues myAdd;
public Form2()
{
myAdd = new CalculateValues();
MulitplyValues Add = new MulitplyValues();
InitializeComponent();
}
也应该能够做到以下几点:
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());
}
}
检查这是否适用于您。还应该能够执行以下操作:
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());
}
}
检查这是否适合您。在按钮单击方法中,它应该是myAdd,而不是myAdd。名称在C中区分大小写。在button1_Click方法中,它应该是myAdd,而不是myAdd。名字在C中区分大小写。是的,我看到了。。无论是myAdd还是Add,它都给了我同样的问题。@taylor1984。现在凉快吗?顺便说一句,您需要从myadd更改为myadd C是区分大小写的。是的,我也这样做了,然后我收到另一个错误,错误是:Error1'WindowsFormsApplication2.CalculateValue'不包含'Add'的定义,并且没有扩展方法'Add'接受类型为'WindowsFormsApplication2.CalculateValue'的第一个参数。是否缺少使用指令或程序集引用?@taylor1984。好CalculateValues有一个Add方法吗?我想从上面的代码来看没有,我没有get和set。是的,我看到了。。无论是myAdd还是Add,它都给了我同样的问题。@taylor1984。现在凉快吗?顺便说一句,您需要从myadd更改为myadd C是区分大小写的。是的,我也这样做了,然后我收到另一个错误,错误是:Error1'WindowsFormsApplication2.CalculateValue'不包含'Add'的定义,并且没有扩展方法'Add'接受类型为'WindowsFormsApplication2.CalculateValue'的第一个参数。是否缺少使用指令或程序集引用?@taylor1984。好CalculateValues是否有Add方法?我想通过查看上面的代码,没有,我没有get和set。WindowsFormsApplication2.CalculateValues不包含“Add”的定义,并且没有扩展方法“Add”接受类型为“WindowsFormsApplication2.CalculateValues”的第一个参数,是否缺少使用指令或程序集引用?@taylor1984:不明白。但是现在如何在代码中使用它呢?CalculateValues是否具有该功能?我已经尝试了CalculateValues,就像您得到它一样,并已上载到公共窗体。WindowsFormsApplication2.CalculateValues不包含“Add”的定义,并且没有扩展方法“Add”接受类型为“WindowsFormsApplication2.CalculateValues”的第一个参数。是否缺少使用指令或程序集引用?@taylor1984:不明白。但是现在如何在代码中使用它呢?CalculateValues是否具有该功能?我已经尝试了CalculateValues,就像您得到它一样,并上传了公共表单。