我正在尝试在递归中修改字符串。这是代码:-
using System;
public class Program
{
public static void Main()
{
string s = "abcdc";
string added = "";
checkIfPalindrome(s,added);
Console.WriteLine( added);
}
public static void checkIfPalindrome(string s,string added)
{
//Console.WriteLine(added);
if(s.Length < 2)
{
return;
}
if(s[0] == s[s.Length -1])
{
checkIfPalindrome(s.Substring(1,s.Length-2),added);
}
else
{
added = s[0] + added;
checkIfPalindrome(s.Substring(1,s.Length-1),added) ;
}
}
}
这是相同的小提琴:-
<iframe width="100%" height="475" src="https://dotnetfiddle.net/Widget/u4119h" frameborder="0"></iframe>
我期望add会在递归中被修改,并作为结果出现在函数调用和main方法中,因为string是引用类型。但是added
文字的值是一个空string。尽管当递归达到基本条件时,它的值为ba
。
使用ref
关键字传递added
我的理解错误吗?