将数组传递给方法。

时间:2016-11-12 08:54:10

标签: c#

我编写了一个简单的代码,并将一个数组传递给该方法并返回该值并尝试将其打印出来。不知何故,我没有得到所需的输出。请指出我错在哪里。此外,还欢迎使代码简洁的提示。

static void Main(string[] args)
    {
        string[] ar = new string[] { "hello", "world", "people" };

        writeString(ar);
        Console.WriteLine(ar);

        Console.ReadLine();

    }

    static string writeString(string[] ar)
    {
        string a1 = " ";
        foreach (string a in ar)
        {
            a1 = a1 + a;
        }
        return a1;
    }

4 个答案:

答案 0 :(得分:4)

我希望代码示例能够清楚说明。您必须从writeString函数捕获返回值并输出该值。

static void Main(string[] args)
{
    string[] ar = new string[] { "hello", "world", "people" };

    string output = writeString(ar);
    Console.WriteLine(output);

    Console.ReadLine();

}

static string writeString(string[] ar)
{
    string a1 = " ";
    foreach (string a in ar)
    {
        a1 = a1 + a;
    }
    return a1;
}

答案 1 :(得分:2)

您可以使用简洁的代码refactor,如下所示,无需其他方法。

注意:我在数组项之前添加了空格。但是,如果您需要在每个数组项之间留出空格,请将delimitter行更改为string delimitter = " ";

您可以使用delimitter等任何字符更改下面的,

static void Main(string[] args)
{
    string[] ar = new string[] { "hello", "world", "people" };

    string delimitter = "";
    string output = " " + String.Join(delimitter, ar);
    Console.WriteLine(output);
    // You can do the same in one line as below by commenting above three lines
    // Console.WriteLine(" " + String.Join("", ar));

    Console.ReadLine();

}

答案 2 :(得分:1)

您不打印writeString(string[] ar)方法返回的字符串。而是打印输入字符串数组变量ar(在行Console.WriteLine(ar)上)。这是你的问题。 WriteLine语句仅打印变量ar的完全限定名称类型:System.String[]

将行Console.WriteLine(ar)更改为Console.WriteLine(writeString(ar))以获得所需的输出。

答案 3 :(得分:1)

  

我编写了一个简单的代码,并将一个数组传递给该方法并返回该值并尝试将其打印出来。不知何故,我没有得到所需的输出

正如每个人都指出你没有收到返回值来打印它或对它做任何事情,所以一个简单的代码修改首先接收结果/输出:

var result =  writeString(ar);
  

您的结果期望是什么

由于您正在打印数组,而不是返回值。甚至在被调用的函数中也没有修改数组,因此它保持完全相同。实现预期结果的最简单方法是:

Console.WriteLine(writeString(ar));
相关问题