【发布时间】:2016-02-09 20:24:39
【问题描述】:
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# 课程中,我们目前正在学习方法和数组,这个程序的目标是将随机数放入三个数组中,然后显示每个数字和数组的总和。
我已经四处搜索,答案大多是“创建实例”,但我不知道如何去做。任何帮助将不胜感激!
【问题讨论】:
-
旁注请查看minimal reproducible example 以获取有关创建更好的代码示例的指导。
-
您的
generateRandomNumbers是属于“类”的静态函数,而您的 arrayOne 是属于“实例”的字段。public class Program {}是一个类。var p = new Program()是“程序”类的一个实例。这就像“Person”和“John”,其中 John 是 Person 的一个实例。在您的情况下,最简单的方法是将 arrayOne...etc 也设为静态。 -
@Bjørn-RogerKringsjå 我不知道。对于Meta Stack Overflow,这是一个非常好的问题。如果您想询问,请确保在那里搜索现有帖子以澄清您的观点。
标签: c#