使用ToString()方法将对象转换为字符串,该字符串不能作为变量?

时间:2017-03-27 08:45:55

标签: c#

  StringBuilder sb = new StringBuilder();
  sb.ToString() = Regex.Replace(sb.ToString(),"something","something");

左侧术语出错:sb.Tostring()。

2 个答案:

答案 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变量之后),但是需要为此目的编写函数。