更改字符串构建器对象中的整个字符串
Changing the entire string in a string builder object
我有以下代码:
using System;
using System.Text;
public class Program
{
private static StringBuilder mystrb = new StringBuilder("hello");
public static void Main()
{
mystrb.Clear();
mystrb.Append("chau");
}
}
是否有任何其他方法可以完全替换字符串生成器中的字符串,如果存在的话,我正在寻找一种用一句话来完成的方法。
重新构建StringBuilder有什么问题?旧的只会被垃圾收集。
mystrb = new StringBuilder("chau");
最好的选择是根本不使用默认值进行实例化。由于您要立即将其替换为其他内容,因此只需将其留空 (new StringBuilder()
) 或 null.
private static StringBuilder mystrb;
如果您过度简化了示例代码,那么只需创建一个新实例即可:
mystrb = new StringBuilder("chau");
我认为 Ian 的解决方案是用一个新对象简单地覆盖您的对象是最好的解决方案,但是如果出于某种原因您不喜欢那样,那么您可以这样做:
static void StringBuilderReplaceText(StringBuilder sb, string newText)
{
sb.Clear();
sb.AppendLine(newText);
}
我最初打算简单地继承 StringBuilder
对象并添加一个新的 Replace
扩展方法,但显然由于某种原因该对象是 sealed。
所以是的,从技术上讲,这将允许您稍后使用 StringBuilderReplaceText(myStringBuilder, "my new text");
将 StringBuilder
的内容替换为一行,但我真的不明白您为什么要这样做只是重新使用构造函数。
我有以下代码:
using System;
using System.Text;
public class Program
{
private static StringBuilder mystrb = new StringBuilder("hello");
public static void Main()
{
mystrb.Clear();
mystrb.Append("chau");
}
}
是否有任何其他方法可以完全替换字符串生成器中的字符串,如果存在的话,我正在寻找一种用一句话来完成的方法。
重新构建StringBuilder有什么问题?旧的只会被垃圾收集。
mystrb = new StringBuilder("chau");
最好的选择是根本不使用默认值进行实例化。由于您要立即将其替换为其他内容,因此只需将其留空 (new StringBuilder()
) 或 null.
private static StringBuilder mystrb;
如果您过度简化了示例代码,那么只需创建一个新实例即可:
mystrb = new StringBuilder("chau");
我认为 Ian 的解决方案是用一个新对象简单地覆盖您的对象是最好的解决方案,但是如果出于某种原因您不喜欢那样,那么您可以这样做:
static void StringBuilderReplaceText(StringBuilder sb, string newText)
{
sb.Clear();
sb.AppendLine(newText);
}
我最初打算简单地继承 StringBuilder
对象并添加一个新的 Replace
扩展方法,但显然由于某种原因该对象是 sealed。
所以是的,从技术上讲,这将允许您稍后使用 StringBuilderReplaceText(myStringBuilder, "my new text");
将 StringBuilder
的内容替换为一行,但我真的不明白您为什么要这样做只是重新使用构造函数。