2016-08-02 208 views
0

我目前無法將變量從一個類傳遞到另一個類。我的第一堂課是從我的表格命名(計算器)的默認。第二個叫做記錄。將變量從一個類傳遞到另一個類

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()方法時,變量值沒有被拉動。這是否是因爲計算器的新類對象被創建,其中變量計算是空白的?任何幫助,將不勝感激。

+0

是的,就是這個原因。您應該將該實例作爲startRecording – Forlani

回答

0

傳遞的類的實例的方法作爲參數

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

0

修改您的方法的StartRecording()取計算作爲參數,並通過計算作爲參數

rec.startRecording(calculation); 

public void startRecording(calculation_VariableType calculation) {} 

通過孔類代替只需傳遞類屬性,因爲在方法中只使用calculation屬性。

相關問題