【问题标题】:Getting output from one function to another, specifically an array从一个函数到另一个函数的输出,特别是一个数组
【发布时间】:2020-10-20 18:10:23
【问题描述】:

我对 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# function methods


【解决方案1】:

一个方法可以是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
}

如果你想了解方法签名和返回类型,这里是documentation,这里是tutorial

【讨论】:

  • 当我输入代码时: static int[] CreateArray(int 200) 我在 200 下得到一个错误,说它需要一个 ',' 知道问题可能是什么吗?
  • @ChibiAyano 是的,当您编写方法的签名时:static int[] CreateArray(int 200) 您需要为括号中的参数命名,以便您可以在方法中引用它。你不会简单地写int 200
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-04
  • 1970-01-01
相关资源
最近更新 更多