【发布时间】:2012-06-16 14:48:20
【问题描述】:
在下面的代码中,当我在调试器中单步执行代码时检查Chars 变量时,char 数组的大小在最后一次迭代的返回行之前为 0,但在返回行之后为 1 和继续增长到原来的大小。
为什么会这样?提前感谢您的帮助。
static void Main(string[] args)
{
string str = "Hello";
PrintReverse(str.ToArray()); // prints "olleH"
Console.Read();
}
static void PrintReverse(char[] Chars)
{
Console.Write(Chars[Chars.Length - 1]);
Array.Resize(ref Chars, Chars.Length - 1);
if (Chars.Length == 0) return;
PrintReverse(Chars);
}
【问题讨论】:
-
哪个字符数组?您的问题不清楚。
-
我对此进行了测试,它只是反向打印了字符串。我必须将 System.Linq 命名空间添加到我的项目中,因为您调用的是
str.ToArray()而不是str.ToCharArray()。
标签: c# arrays recursion char return