C# 更改字符串生成器对象中的整个字符串
我有以下代码:C# 更改字符串生成器对象中的整个字符串,c#,string,stringbuilder,C#,String,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"); } } 有没有其他方法可以完全替换字符
using System;
using System.Text;
public class Program
{
private static StringBuilder mystrb = new StringBuilder("hello");
public static void Main()
{
mystrb.Clear();
mystrb.Append("chau");
}
}
有没有其他方法可以完全替换字符串生成器中的字符串,我正在寻找一种一句话的方法,如果它存在的话。重新构造字符串生成器有什么错?旧的将被垃圾收集
mystrb = new StringBuilder("chau");
最好的选择是根本不使用默认值进行实例化。由于要立即将其替换为其他内容,因此只需将其保留为空(
new StringBuilder()
)或null即可
如果您过度简化了示例代码,则只需创建一个新实例:
mystrb = new StringBuilder("chau");
我认为Ian简单地用一个新对象覆盖你的对象的解决方案是最好的解决方案,但是如果出于某种原因你不喜欢,那么你可以这样做:
static void StringBuilderReplaceText(StringBuilder sb, string newText)
{
sb.Clear();
sb.AppendLine(newText);
}
我最初打算简单地继承StringBuilder
对象,并添加一个新的Replace
扩展方法,但显然该对象是出于某种原因
因此,从技术上讲,这将允许您稍后使用
StringBuilderReplaceText(myStringBuilder,“我的新文本”)用一行替换StringBuilder
的内容代码>但是我真的不明白为什么你要这样做,而不只是重复使用构造函数。用.Clear()清除它有什么错代码>?-一行按要求mystrb.Clear().Append(“chau”)代码>也是一种方法:)一句话=一行?不先创建它怎么样?然后创建一个新实例。
static void StringBuilderReplaceText(StringBuilder sb, string newText)
{
sb.Clear();
sb.AppendLine(newText);
}