2016-10-03 161 views
-2

我試過使用Inheritance,但它沒有拖欠工作,此外我嘗試使用Composition,但同樣很少成功。單個數組是從文本文件中讀取的,這使它成爲特定的數據。代碼如下:如何將一個類中生成的變量傳遞給另一個類?

The generating code: 
public static void ReadText(string[] args) 
    { 
     Dictionary<string, int[]> rows = new Dictionary<string, int[]>(); 

     string[] lines = File.ReadAllLines("txt.txt"); 

     int counter = 0; 

     foreach (string s in lines) 
     { 
      //Console.WriteLine(s); 
      string[] arr = s.Split(' '); 
      int[] array = new int[arr.Length]; 

      for (int i = 0; i < arr.Length; i++) 
      { 
       array[i] = Convert.ToInt32(arr[i]); 
      } 


      string key = "M_array_" + counter++; 
      rows.Add(key, array); 
      //ShowArray(array); 

     } 

     foreach (string key in rows.Keys) 
     { 
      Console.WriteLine($"{key}: {String.Join(" ", rows[key])}"); 
     } 

     Console.ReadLine(); 
    } 

我怎麼叫M_array_1M_array_2等在其他類?通常然後我叫一個varibel從另一個類我用inheritance

Class_example CE = new Class_example(); 

或者Composition

public class wheel{} 
public class car : wheel{} 
+2

目前還不清楚爲什麼你有一本字典......只是將數組傳遞給其他代碼不是更好嗎?但目前還不清楚你的問題是否與特定數據(本例中的數組/字典)有任何關係,或者你是否知道如何從任何一個類獲取*任何信息。由於我們看不到您的其他代碼,因此很難幫助您。也許你的ReadText方法應該返回一個int [] []或者一個List []? –

+0

我不確定你是否掌握了你的最終評論所判斷的繼承和組成。你可能應該進一步探索一下。 –

回答

-1

讓你的字典靜態和可從其他類?

public class MyClass 
{ 
    public static Dictionary<string, int[]> Rows = new Dictionary<string, int[]>(); // initialize just in case 
    public static void ReadText(string[] args) 
    { 
     Rows = new Dictionary<string, int[]>(); 

     string[] lines = File.ReadAllLines("txt.txt"); 

     ... 
    } 
} 

public class AnotherClass 
{ 
    public void DoSomething() 
    { 
     // Make sure you have done MyClass.ReadText(args) beforehands 
     // then you can call the int array 
     int[] m_array_1 = MyClass.Rows["M_array_1"]; 
     int[] m_array_2 = MyClass.Rows["M_array_2"]; 

     // or 
     foreach (string key in MyClass.Rows.Keys) 
     { 
      Console.WriteLine($"{key}: {String.Join(" ", rows[key])}"); 
     } 
    } 
} 
+0

爲什麼你不只是從方法中返回數據。這兩步方法很容易出錯。你不應該調用'ReadText'然後調用'Rows'。 –

+0

感謝downvote,我只是給出了一個建議,以滿足他的要求,讓其他類訪問int數組,而不是試圖做簡單的方法或更少的錯誤傾向。 – kurakura88

相關問題