C# 使用扩展方法替换字符串
例如,如果我有一个字符串,我想用星号替换该字符串中的最后一个字符 我试过这个C# 使用扩展方法替换字符串,c#,.net,C#,.net,例如,如果我有一个字符串,我想用星号替换该字符串中的最后一个字符 我试过这个 var myString = "ABCDEFGH"; myString.ReplaceCharacter(mystring.Length - 1, 1, "*"); public static string ReplaceCharacter(this string str, int start, int length, string replaceWith_expression) { return str.
var myString = "ABCDEFGH";
myString.ReplaceCharacter(mystring.Length - 1, 1, "*");
public static string ReplaceCharacter(this string str, int start, int length, string replaceWith_expression)
{
return str.Remove(start, length).Insert(start, replaceWith_expression);
}
我尝试过使用这种扩展方法,但不起作用。
为什么这不起作用?该方法实际上是替换字符,但您必须捕获结果
myString = myString.ReplaceCharacter(myString.Length - 1, 1, "*");
问题是字符串是不可变的。方法replace、substring等不会更改字符串本身。他们创建一个新字符串并替换它。因此,要使上述代码正确,它应该是
myString = myString.ReplaceCharacter(myString.Length - 1, 1, "*");
可能重复的