1

我写了一个函数,但这个函数仍然返回旧字符串而不是新字符串。当您对旧字符串进行操作时,我不知道如何返回新字符串

举例:

public string TestCode(string testString)
{

// Here something happens with the testString


//return testString; <-- i am returning still the same how can i return the new string //where something is happened with in the function above

}
4

3 回答 3

5

// 这里的 testString 发生了一些事情

确保你对字符串做了什么,你将它分配回testString喜欢。

testString = testString.Replace("A","B");

因为字符串是不可变的。

我假设您正在调用该函数,例如:

string somestring = "ABC";
somestring = TestCode(somestring);
于 2013-03-05T09:05:43.463 回答
0

String是不可变的(即不能更改)。你必须这样做

      myString = TestCode(myString) 
于 2013-03-05T09:05:50.967 回答
0

只需确保将新字符串值分配给变量(或参数testString)。例如,这里一个非常常见的错误是:

testString.Replace("a", ""); // remove the "a"s

这应该是:

return testString.Replace("a", ""); // remove the "a"s

或者

testString = testString.Replace("a", ""); // remove the "a"s
...
return testString;

关键是:string是不可变Replace的:等不要更改旧字符串:它们会创建一个您需要存储在某处的新字符串。

于 2013-03-05T09:07:01.523 回答