将变量从一个类传递到另一个类
问题描述:
我目前无法将变量从一个类传递到另一个类。我的第一堂课是从我的表格命名(计算器)的默认。第二个叫做记录。将变量从一个类传递到另一个类
public void toolStripLabel1_Click(object sender, EventArgs e)
{
Record rec = new Record();
System.Windows.Forms.MessageBox.Show(calculation);
rec.startRecording();
}
上面当我点击正确的变量显示在弹出框中。
namespace CalculatorV2
{
class Record
{
public void startRecording()
{
Calculator calc = new Calculator();
System.Windows.Forms.MessageBox.Show(calc.calculation);
using (StreamWriter writer =
new StreamWriter("important.txt"))
{
writer.WriteLine("Line one");
writer.WriteLine(calc.calculation);
writer.WriteLine("Line Two");
}
}
}
}
但是当我调用startRecording()方法时,变量值没有被拉动。这是否是因为计算器的新类对象被创建,其中变量计算是空白的?任何帮助,将不胜感激。
答
传递的类的实例的方法作为参数
class Record
{
public void startRecording(Calculator calculator)
{
System.Windows.Forms.MessageBox.Show(calculator.calculation);
using (StreamWriter writer =
new StreamWriter("important.txt"))
{
writer.WriteLine("Line one");
writer.WriteLine(calculator.calculation);
writer.WriteLine("Line Two");
}
}
}
public void toolStripLabel1_Click(object sender, EventArgs e)
{
Record rec = new Record();
System.Windows.Forms.MessageBox.Show(calculation);
rec.startRecording(this);
}
+0
的参数传递。感谢您的帮助。括号内的“this”仅仅是对当前类“计算器”的引用吗? – RumbleJungle
+0
是的,这是对包含'toolStripLabel1_Click'方法的类的引用。 – Fabio
答
修改您的方法的StartRecording()取计算作为参数,并通过计算作为参数
rec.startRecording(calculation);
public void startRecording(calculation_VariableType calculation) {}
通过孔类代替只需传递类属性,因为在方法中只使用calculation
属性。
是的,就是这个原因。您应该将该实例作为startRecording – Forlani