C# 将数组传递给方法。
我编写了一个简单的代码,向方法传递了一个数组,并返回了值,试图将其打印出来。不知何故,我没有得到所需的输出。请指出我错在哪里。另外,让代码简洁的技巧也是最受欢迎的C# 将数组传递给方法。,c#,C#,我编写了一个简单的代码,向方法传递了一个数组,并返回了值,试图将其打印出来。不知何故,我没有得到所需的输出。请指出我错在哪里。另外,让代码简洁的技巧也是最受欢迎的 static void Main(string[] args) { string[] ar = new string[] { "hello", "world", "people" }; writeString(ar); Console.WriteLine(ar);
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;
}
您没有打印由
writeString(string[]ar)
方法返回的字符串。而是打印输入字符串数组变量ar
(在线Console.WriteLine(ar)
)。那是你的问题。该WriteLine
语句仅打印变量ar
类型的完全限定名:System.String[]
将行
Console.WriteLine(ar)
更改为Console.WriteLine(writeString(ar))
以获得所需的输出。我希望代码示例能够清楚地说明这一点。您必须从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;
}
我编写了一个简单的代码,向方法传递了一个数组,并返回了值,试图将其打印出来。不知何故,我没有得到所需的输出
正如每个人都指出的那样,您没有收到返回值来打印它或对它做任何事情,因此,一个简单的代码修改就是首先接收结果/输出:
var result = writeString(ar);
你期望的结果是什么
因为您打印的是数组,而不是返回值。数组在被调用函数的任何地方都没有修改,因此它保持完全相同。实现预期结果的最简单方法是:
Console.WriteLine(writeString(ar));
您可以使用简洁的代码
重构它,如下所示,而不需要其他方法
注意:我像您一样在数组项之前添加了空格。但是,如果您需要在数组的每个项目之间留出空间,则将分隔符
行更改为字符串分隔符=”代码>
您可以使用、
等任意字符更改下面的分隔符
static void Main(string[] args)
{
string[] ar = new string[] { "hello", "world", "people" };
string delimiter = "";
string output = " " + String.Join(delimiter, 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();
}
您没有捕获写入字符串的writeString
sreturn@LPK-虽然完全正确,但我认为您误解了OP的意图-显然writeString
应该写入字符串-这意味着它应该写入控制台而不是返回结果…使用方法writeString
控制台返回的值。WriteLine(RetryString(AR));确实考虑String。多个答案所建议的String。如果您试图将整数组转换成由分隔符分隔的单个字符串,尽管您的问题并不表明这是一种要求。函数进行一些调整。@PoomrokcThe3years In original question OP不是复制联接功能,因为联接将添加集合的所有元素,因为它创建了一个字符串,这里只在开始处追加空格,而不是在elements@MrinalKamboj如果我执行output=“”+String.Join怎么办(String.Empty,ar);?需要这样做吗?我不知道我已经有3年没有编写C了。@poomrokthe3年肯定会,事实上这就是他在当前方法中试图做的,然而,我的直觉是OP实际上可能需要一个连接,正如您之前所展示的:)@SaurabChooks我很高兴。你能接受这是正确的答案吗:-)原始功能不做加入的工作,伊芙,如果这是目的的话,因为它只是在开始时添加了空白,没有位置else@MrinalKamboj为什么不在这里加上同样的“”+String.Join(定界符,ar)
?我想,他需要在数组项之间留出空间,并做错事。在这种情况下,定界器
变为字符串定界器=“”代码>这是你对OP需要什么的假设,它没有在任何地方指定,所以我不确定,用例是什么,他只是问关于打印输出的问题,这无论如何都是错误的。请再次阅读他的问题。他要求提供以及使代码简洁的提示,非常受欢迎
请添加一些代码以使其成为有效的答案,或者更好地使用注释部分以获得建议