StringBuilder sb = new StringBuilder();
sb.ToString() = Regex.Replace(sb.ToString(),"something","something");
左侧术语出错:sb.Tostring()。
答案 0 :(得分:1)
ToString()
是一种方法,无法分配。将您的代码更改为:
StringBuilder sb = new StringBuilder();
//...do something with your StringBuilder...
var result = Regex.Replace(sb.ToString(),"something","something");
注意,您的代码会创建一个StringBuilder
,并且......不会对其执行任何操作。在您的情况下,sb.ToString()
将生成一个空字符串;所以result
也是一个空字符串。
答案 1 :(得分:1)
要替换StringBuilder
的内容,您无法分配函数 1 的结果,因为函数返回不可分配。
使用
var x = sb.ToString();
sb.Clear();
sb.Append(Regex.Replace(x, "something", "something"));
1 C#7引用返回允许这样做(但仅在分配给本地ref
变量之后),但是需要为此目的编写函数。