【发布时间】:2021-09-07 23:11:39
【问题描述】:
我试图通过调用带参数的方法来在 main 方法中为数组赋值 我想从同一个类中的另一种方法中读取它,但在地雷中它只读取数组的最后一个元素。这是一个例子
public void array(int x)
{
for(int i = 0; i < 5; i++)
{
array1[i] = x;
}
}
public void readarray()
{
for(int i = 0; i < 5; i++)
{
Console.WriteLine(" " + array1[i]);
}
}
}
在主要方法中
int z;
for(int i = 1; i < 6; i++)
{
Console.Write($"Enter e values for index {i}:");
z = int.Parse(Console.ReadLine());
obj.array(z);
}
obj.readarray();
【问题讨论】:
-
欢迎使用 stackoverflow。我推荐taking the tour,以及阅读how to ask a good question 和what's on topic。
-
我很困惑这段代码应该做什么。我确实注意到,在第二个代码块中,您将从 1 变为 6,而不是从 0 变为 5
-
好吧,你的
array-方法用提供的参数的值覆盖了整个数组中的每个元素。当您在循环中调用该方法时,您会一次又一次地有效地覆盖前一个循环的内容,直到到达最后一次迭代。我想您只想在每次迭代中设置一个 特定 元素,不是吗? -
@DavidG 在这里没关系。它仍然是 5 次迭代,其中索引实际上并不重要。重要的是整个数组被当前值覆盖(
zin main,xinarray(x))。 -
@Fildor 我知道,我只是指出不一致