class Program
{
int[] arrayOne = new int[3];
int[] arrayTwo = new int[5];
int[] arrayThree = new int[7];
int sumOne = 0;
int sumTwo = 0;
int sumThree = 0;
static void Main()
{
//call method to generate numbers
generateRandomNumbers();
//call method to get sums of arrays
sumOne = getSum(arrayOne);
sumTwo = getSum(arrayTwo);
sumThree = getSum(arrayThree);
//call method to show numbers in each array and their sum
showNumbers(arrayOne);
showNumbers(arrayTwo);
showNumbers(arrayThree);
ReadKey();
}
private static void generateRandomNumbers()
{
Random random = new Random();
//load in values for arrayOne
for (int i = 0; i < arrayOne.Length; i++)
arrayOne[i] = random.Next(1, 99);
//arrayTwo
for (int j = 0; j < arrayTwo.Length; j++)
arrayTwo[j] = random.Next(1, 99);
//arrayThree
for (int k = 0; k < arrayThree.Length; k++)
arrayThree[k] = random.Next(1, 99);
}
private static int getSum(int[] array)
{
int total = 0;
for (int x = 0; x < array.Length; x++)
total += array[x];
return total;
}
private static void showNumbers(int[] array)
{
for (int m = 0; m < array.Length; m++)
Write("{0, 5}", array[m]);
switch (array.Length)
{
case 3:
Write(" = {0}", sumOne);
break;
case 5:
Write(" = {0}", sumTwo);
break;
case 7:
Write(" = {0}", sumThree);
break;
}
WriteLine();
}
}
基本上,發生錯誤處處,我使用arrayOne,arrayTwo,arrayThree,和sumOne,sumTwo,sumThree。從Main和generateRandomNumbers方法中刪除'static'會刪除所有的錯誤,但是當然如果沒有靜態的Main方法,它就無法編譯。C#CS0120 「的對象引用是所必需的非靜態字段,方法或屬性」
在我的C#當然,我們正在學習的時刻,這一計劃的目標的方法和陣列是將隨機數成三排,然後顯示每個數字和數組的總和。
我已搜查和周圍的答案大多是沿着「創建實例」行去,但我不知道如何去這樣做。任何幫助將非常感激!
旁註請查看[MCVE]爲指導創造更好的代碼示例。 –
您的'generateRandomNumbers'是屬於「Class」的靜態函數,而您的arrayOne是屬於「Instance」的字段。 'public class Program {}'是一個類。 'var p = new Program()'是類「Program」的一個實例。 這就像約翰是人的一個實例的「人」和「約翰」。 在你的情況下,最簡單的方法就是讓arrayOne ...等靜態爲好。 – BernieDADA
@Bjørn-RogerKringsjå我不知道。這對於[META]來說是一個很好的問題。如果你想問一下,確保在那裏搜索現有的帖子來澄清你的觀點。 –