首页 > 解决方案 > 从一个函数到另一个函数的输出,特别是一个数组

问题描述

我对 c# 很陌生,我正试图了解函数/方法。

下面,我正在尝试创建一个程序,它有一个函数创建 200 个随机数并将它们存储在一个数组中,然后我想要另一个函数对所述数组进行排序并计算重复项。这就是问题所在,我不完全确定如何从第一个函数中获取数组,或者至少将其中的值获取到第二个函数中。下面的代码可能很草率,因为当我被卡住时,我有点半途而废。

class Program
{
    static void Main(string[] args)
    {
        ExamineArray();
        Console.ReadKey();
    }

    static void CreateArray(int i)
    {
        int[] array = new int[200];
        Random rand = new Random();
        for (i = 0; i<200; i++)
        {
            int x = rand.Next(0, 11);
            array[i] = x;
        }
    }

    static void ExamineArray()
    {
        for (int i = 0; i < 200; i++)
        {
            Console.WriteLine(CreateArray(i));
        }
    }
}

我曾考虑让第二个数组通过并完全重写第一个数组的内容,但我仍然不知道如何获取内容。抱歉问了这么简单的问题。

标签: c#functionmethods

解决方案


方法可以是 void,这意味着它没有返回类型,或者它可以返回一个对象。通常,被调用的方法CreateArray也可以预期返回该数组。您必须像这样修改方法的签名:

static int[] CreateArray(int i){ // your method code goes in here}

这意味着它将返回一个整数数组。当您完成构建数组后,在方法内部使用return关键字将其取出:

static int[] CreateArray(int numberOfArrayItems)
{
    int[] array = new int[numberOfArrayItems];
    Random rand = new Random();
    for (int i = 0; i<numberOfArrayItems; i++)
    {
        int x = rand.Next(0, 11);
        array[i] = x;
    }
    return array;  // <-- here you return the array
}

现在在此方法的调用站点,您现在可以简单地收获构造的数组,例如:

static void ExamineArray()
{
    int[] array = CreateArray(200);
    // do what ever you want with it
}

如果您想阅读方法签名和返回类型,这里是文档,这里是教程


推荐阅读