在新类中创建字符串生成器

本文关键字:字符串 新类中 创建 | 更新日期: 2023-09-27 18:25:57

我想在 c# 的新类中创建一个字符串生成器,因为我有很多字符串(超过 7,000 个(要替换。 以相同的形式执行可能会遇到加载问题,因此我想创建一个新类,我可以在其中编写字符串生成器代码,但无法做到。我尝试了以下代码

class v
    {
        StringBuilder _sb = new StringBuilder();
        public v(StringBuilder sb)
        {
            sb.Replace("s", "A");
            sb.Replace("hi", "hello");
        }
    }

我的按钮代码:

StringBuilder _sb = new StringBuilder(c1Editor1.Text);
_sb.v(C1Editor.text);

在新类中创建字符串生成器

class v
{
    StringBuilder _sb;
    public v(StringBuilder sb)
    {
        _sb = sb;
        sb.Replace("s", "A");
        sb.Replace("hi", "hello");
    }
}

然后:

StringBuilder _sb = new StringBuilder(c1Editor1.Text);
v _v = new v(_sb);

并不是说我一定认为这是好的代码,但它可以实现你想要做的事情。

如果你想改变你自己的弦乐文本,这个怎么样?

1.创建字符串生成器处理程序

public static class StringHelper
{
    public static void v(this StringBuilder  sb)
    {
        sb.Replace("s", "A");
        sb.Replace("hi", "hello");
    }
}

2.代码中的用户处理程序类

StringBuilder sb = new StringBuilder(c1Editor1.Text);
sb.v();

这是你如何做到的。将代码粘贴到一个表单中,其中TextBox名为 textBox1Button名为 button1BackgroundWorker名为 backgroundWorker1

private void button1_Click(object sender, EventArgs e)
{
    // instead of changing the cursor you could disable the textbox
    this.UseWaitCursor = true;
    backgroundWorker1.DoWork += Replacer;
    backgroundWorker1.RunWorkerCompleted += backgroundWorker1_RunWorkerCompleted;
    backgroundWorker1.RunWorkerAsync(textBox1.Text);
}
private void Replacer(object sender, DoWorkEventArgs doWorkEventArgs)
{
    var replacer = new StringBuilder((String)doWorkEventArgs.Argument);
    replacer.Replace("s", "A");
    replacer.Replace("hi", "hello");
    // add other 6998 replacements here and remove the sleep of course
    Thread.Sleep(5000);
    doWorkEventArgs.Result = replacer.ToString();
}
void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    textBox1.Text = (string) e.Result;
    // instead of changing the cursor you could enable the textbox here
    this.UseWaitCursor = false;
}

祝你好运。