use*_*108 2 c# arrays return function
作为C#的新手,我尝试用方法反转数组.但它不会返回反转阵列.我试了几个小时,但仍然没有得到它我做错了.整个过程是从我购买的"C#玩家指南 - 第2版"一书中吸取教训.不幸的是,课程的解决方案没有包含在书中.该Main方法是预定义的,应该像你看到的那样使用.
如果我在for循环中输出它54321,那就没问题了.但是正确的输出应该来自该PrintNumbers方法.而且存在问题,因为输出12345没有逆转
这是代码,请告诉我你是否看到了不好的东西.
class Program
{
static void Main(string[] args)
{
int[] numbers = GenerateNumbers();
Reverse(numbers);
PrintNumbers(numbers);
Console.ReadKey();
}
//Generate the array and return the numbers
static int[] GenerateNumbers()
{
int[] temp;
temp = new int[] { 1, 2, 3, 4, 5 };
return temp;
}
//Reverse the numbers in the array
static int[] Reverse(int[] numbersToSwap)
{
//Write array length in value to decrement later
int numbersLenghtMax = numbersToSwap.Length;
//Minus 1 because an array starts with 0
numbersLenghtMax--;
//Create a temp value to store last value of array
int[] temp = new int[numbersToSwap.Length];
for (int index = 0; index < numbersToSwap.Length; index++)
{
//Store values reversed in the temp value
temp[index] = numbersToSwap[numbersLenghtMax];
numbersLenghtMax--;
//This output is correct
Console.Write(temp[index]);
}
Console.WriteLine();
//The returned array is not reversed
return temp;
}
//Print out the numbers
static void PrintNumbers(int[] numbers)
{
foreach (int number in numbers)
Console.Write(number);
}
}
Run Code Online (Sandbox Code Playgroud)
您的Reverse方法返回int[](反转数组的结果),但您没有使用此类返回值.
像这样使用它:
int[] numbers = GenerateNumbers();
numbers = Reverse(numbers); //Assign the return value to the numbers variable
PrintNumbers(numbers);
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)