大家好我想做的就是因为我做错了,或者我想再考虑一下。我正在尝试创建一个类,在类中我调用了两个私有变量,如num1和num2。然后我创建一个对应于num 1和num 2的公共属性。然后在我创建之后,我需要创建一个名为calculate的公共overriable方法,这将把两个变量一起添加并返回结果。然后我有一个添加按钮,我必须将代码添加到按钮,添加两个数字并将结果输出到消息框。我尝试了几种不同的方式,我仍然没有得到它。 这是代码1:
public abstract class CalulateValues
{
protected List<int> values = new List<int>();
public void AddValue(int value) { values.Add(value); }
public abstract int Calculate();
}
public class Add : CalulateValues
{
public override int Calculate()
{
return values.Sum(x => x);
}
}
这是我尝试的代码2:
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());
}
我不太确定我做错了也许我没有以正确的方式列出代码。
答案 0 :(得分:3)
您已将myAdd
声明为Form2构造函数中的局部变量。将其声明为全局变量,以便能够从button1_Click()
除此之外,您是否收到任何错误或异常?其次,你在哪里声明了接受两个参数的Add方法?
答案 1 :(得分:0)
public partial class Form2 : Form
{
CalculateValues myAdd;
public Form2()
{
InitializeComponent();
myAdd = new CalculateValues();
}
private void button1_Click(object sender, EventArgs e)
{
int total = myAdd.Add(int.Parse(textBox1.Text), int.Parse(textBox2.Text));
MessageBox.Show(total.ToString());
}
}
然后首先查看C#教程,然后查看变量范围的详细信息。
答案 2 :(得分:0)
int total = myAdd.Add(int.Parse(textBox1.Text), int.Parse(textBox2.Text));
myAdd根本没有Add方法。它是AddValue
。您应该致电Calculate
并检索结果。
将myAdd声明为成员变量,而不是构造函数中的local。
试试看:
myAdd.AddValue(int.Parse(textBox1.Text)
myAdd.AddValue(int.Parse(textBox2.Text);
int total = myAdd.Calculate();
MessageBox.Show(total.ToString());
代码中存在多个错误。
答案 3 :(得分:0)
你没有方法添加,你应该使用像这样的方法计算
private void button1_Click(object sender, EventArgs e)
{
int total = myAdd.Add(int.Parse(textBox1.Text), int.Parse(textBox2.Text));
MessageBox.Show(total.ToString());
}
答案 4 :(得分:-1)
您需要在构造函数之外声明myAdd
变量,即使您只在Form2()构造函数中初始化。
您的CalculateValues
课程没有“Add
”方法。
相反,你应该像这样调用“Calculate
”方法:
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.Calculate(int.Parse(textBox1.Text), int.Parse(textBox2.Text));
MessageBox.Show(total.ToString());
}