如果我有字符串:string a = "Hello there"
我希望我能做到:a.ReplaceThereSubstring()
并期待a = "Hello here"
我试过这样:
public static class ChangeString
{
public static string ReplaceThereSubstring(this String myString)
{
return myString.Replace("there","here");
}
}
但它总是返回null。
答案 0 :(得分:2)
在这种情况下,你应该这样做来运行你的代码:
string a = "Hello there"
a = a.ReplaceThereSubstring();
您无法在扩展方法中替换字符串的值,因为字符串不可变
答案 1 :(得分:2)
您无法修改现有字符串,因为strings are immutable。
因此像myString.Replace("there", "here");
这样的表达式不会改变myString实例。
您的扩展方法实际上是正确的,但您应该以这种方式使用它:
a = a.ReplaceThereSubstring();
答案 2 :(得分:1)
您需要分配结果:
string b = a.ReplaceThereSubString();