函数不返回反转数组

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)

Yac*_*sad 6

您的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)