2017-10-04 68 views
-1

我想用不同大小的多次使用相同的數組。我的目標是使用單個方法,然後在調用方法時應用數組大小​​。使用1方法用於不同大小的多個陣列

下面是我的方法:

//print all the excercises and let the user input the weights they lifted 
    public void PrintExcercises(float[] lift) { 
     for (int x = 0; x < lift.Length; x++) 
     { 
      Console.Write(msg[x]); 
      lift[x] = float.Parse(Console.ReadLine()); 
     } 
    } 

而這裏就是我稱之爲:

PrintExcercises(new float[8]); 

我得到運行程序時出現以下錯誤:「未處理的異常信息:System.NullReferenceException:在C:\ Users \ xxx \ OneDrive - xxx \ CS程序\ Serious \ GymBuddy \ GymBuddy \ Program.cs中的GymBuddy.MainProgram.PrintExcercises(Single [] lift) 對象引用未設置爲對象的實例。 136 at GymBuddy.MainProgram.DayD()in C:\ Users \ xxx \ OneDrive - xxx \ CS Programs \ Serious \ GymBuddy \ GymBuddy \ Program.cs:line 120 at GymBuddy.MainProgram.Workout()in C:\ Users \ xxx \ OneDrive-xxx \ CS Programs \ Serious \ GymBuddy \ GymBuddy \ Program.cs:line 40 at GymBuddy.MainProgram.Main(String [] args)in C:\ Users \ xxx \ OneDrive - xxx \ CS Programs \ Serious \ GymBuddy \ GymBuddy \的Program.cs:行19"

編輯:msg是保持在特定的一天進行的各種健身excercises數組:

string[] msg = new string[] { 
    "Longbar 3x: ", 
    "Preacher Bar 3x: ", 
    "Pull Down Machine 3x: ", 
    "Cable till exhaustion: ", 
    "Long Cable 3x: ", 
    "Behind Head Cable 3x: ", 
    "Behind Head Dumbells 3x: ", 
    "Cable till exhaustion: "}; 
+0

什麼是'在'Console.Write msg'(MSG [ X]);'? –

+0

msg是一個數組,它包含在特定日期執行的各種健身運動: 'string [] msg = new string [] {「Longbar 3x:」,「Preacher Bar 3x:」,「Pull Down Machine 3x :「, 」電纜至耗盡:「,」長電纜3x:「,」頭後 電纜3x:「,」頭後啞鈴3x:「, 」電纜直到用盡:「};' –

+1

你爲什麼要經過一個數組開始?執行'PrintExcercises'後,它不再可用。 –

回答

0

錯誤本身表明你從尚未實例化的對象中調用一個非靜態方法,立即修復可能是將該方法更改爲一個靜態方法,無論它的類是否實例化,它都可以調用。

以其他方式在程序GymBuddy gymBuddy =新GymBuddy類別的地方的新副本()

那麼你可以做gymBuddy.printexcercise(新浮法[8])

=== ===================================

下面

的另一種方法,你可以嘗試有多個數組並在其中創建一個方法,其中每個數組都是一個數字,只需使用數字調用該方法即可指定ar ray和第二個數字來指定數組中的位置。

如:

`public static string[] CallArray(int x, int y){ 
    switch(x){ 
     case 1: 
      return arr1[y]; 
      break; 
    } 
} 

CallArray(1,3) = "Fish";` 

與上面,你可以只通過選擇陣列運行,並具有打印每串每個循環

+0

這與OP問題有何關係? – PaulF

+0

你的意思不是告訴他要麼使用一個列表或構造 - >複製到新陣列和破壞舊陣列? 它提供了一個簡單而靈活的替代方法來實現他想要實現的目標,而不會導致手頭任務不必要的複雜化。 如果你指的是這個例子....它只是一個例子,重要的部分是方法 –

+0

儘可能的原始的期望的方法,你可以做一個方法模仿列表如何增加其大小,例如arr1.copyto( arr2)解構arr1,只是arr2的大小增加或減小 –

相關問題