C# 用C计算#
大家好,我正试图让大家知道我做错了什么,或者也许我又想得太多了。我试图创建一个类,在这个类中我调用了两个私有变量,比如num1和num2。然后我创建一个公共属性,它对应于num 1和num2。然后,在我创建之后,我需要创建一个名为calculate的公共可过度分配方法,这将两个变量相加并返回结果。然后我有一个添加按钮,我必须将代码添加到添加两个数字的按钮,并将结果输出到messagebox。我尝试了几种不同的方法,但仍然没有得到它。 以下是代码1:C# 用C计算#,c#,C#,大家好,我正试图让大家知道我做错了什么,或者也许我又想得太多了。我试图创建一个类,在这个类中我调用了两个私有变量,比如num1和num2。然后我创建一个公共属性,它对应于num 1和num2。然后,在我创建之后,我需要创建一个名为calculate的公共可过度分配方法,这将两个变量相加并返回结果。然后我有一个添加按钮,我必须将代码添加到添加两个数字的按钮,并将结果输出到messagebox。我尝试了几种不同的方法,但仍然没有得到它。 以下是代码1: public abstract class
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);
}
}
现在,当按钮出现时,我尝试了以下代码:
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
声明为Form2构造函数中的局部变量。将其声明为全局变量,以便能够从按钮1\u Click()
除此之外,您是否收到任何错误或异常?其次,您在哪里声明了接受两个参数的Add方法?您需要在构造函数外部声明
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());
}
然后首先查阅C#教程,然后详细了解变量范围
int total = myAdd.Add(int.Parse(textBox1.Text), int.Parse(textBox2.Text));
myAdd根本没有Add方法。它是AddValue
。您应该调用计算并检索结果
在构造函数中将myAdd声明为成员变量,而不是局部变量
试试看:
myAdd.AddValue(int.Parse(textBox1.Text)
myAdd.AddValue(int.Parse(textBox2.Text);
int total = myAdd.Calculate();
MessageBox.Show(total.ToString());
您的代码中有多个bug。您没有方法Add,您应该使用如下方法计算
private void button1_Click(object sender, EventArgs e)
{
int total = myAdd.Add(int.Parse(textBox1.Text), int.Parse(textBox2.Text));
MessageBox.Show(total.ToString());
}
首先,我建议修改你的名字。有一个名为CalulateValues
的类和另一个名为CalculateValues
的类非常令人困惑,还有一个名为Add
的变量,它是MulitplyValues
的一个实例。在我看来,您并没有在任何地方调用Calculate()/线程。。。。链接到可能我只是让自己更加困惑,然后我需要。现在private可以是这样的,对的,private int num1;私人国际货币单位2;'要创建公共属性,您可以像下面这样“public int Add()”;num1=num1;num2=num2;返回num1+num2;'或者我只是把它弄糊涂了。你真的应该读一本C#书或者至少是C#教程,其中也解释了OOP的概念。我想你的意思是把它作为Form2的一个字段添加,而不是一个全局变量。@DavidKemp它在Form2类的上下文中是全局的,但是是的,它应该在Form2中声明为字段,以便Form2类的其他方法和属性可以访问。(我相信我们在同一条轨道上:-)全局上下文有一个特殊的含义,在C#中无效,因为你不能有全局变量-你必须使用(公共)静态成员。但是是的,我们都在同一条轨道上。
myAdd.AddValue(int.Parse(textBox1.Text)
myAdd.AddValue(int.Parse(textBox2.Text);
int total = myAdd.Calculate();
MessageBox.Show(total.ToString());
private void button1_Click(object sender, EventArgs e)
{
int total = myAdd.Add(int.Parse(textBox1.Text), int.Parse(textBox2.Text));
MessageBox.Show(total.ToString());
}