本文介绍了TextBox.Text + ="串英寸; VS TextBox.AppendText(QUOT;串QUOT;);的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

就是这两种方法之间的区别?

what is the difference between these two methods?

比其他有效率的吗?

我想也许在AppendText通过()使用类似的StringBuilder的方法,也就是说,它使用它自己的缓存,而不是创建和附加一个新的字符串每次,是真的吗?

I was thinking maybe the AppendText() uses a method similar to the StringBuilder, ie it uses its own cache instead of creating and appending a new string each time, is that true?

感谢。

推荐答案

由于它是在的

AppendText通过方法使用户将文本追加到文本控件的内容,无需使用文本串联,其中,能产生时需要许多串联更好的表现。

您的问题,

就是这两种方法之间的区别?

我们都知道 TextBox.Text + =东西; 将工作即创建和每次追加一个新的字符串,但如何 AppendText通过作品无论在内部,它使用我找不到任何代码段的StringBuilder 还是其他什么东西。

We all know how TextBox.Text += something; will work i.e. creating and appending a new string each time but how AppendText works I could not find any code snippet whether internally it uses StringBuilder or something else.

比其他有效率的吗?

我想回答上面的问题将视情况而定,(根据测试的情况下观察)

I think answer to above question will depend on the situation, (Based on Test case observation)

如果 属性设置为 级联(+ =)会产生更好的结果,但是,另一方面 属性设置为 AppendText通过 性能收益率远越好。

修改阅读的我做了一个自定义双赢的形式解决方案,其中我有一个简单的文本中我追加一个简单的字符串你好 10000 使用一个简单的时间 for循环

EDIT After reading the comment from Rawling I made a custom win-form solution in which I had a simple textbox in which I appended a simple string hello 10000 times using a simple for-loop

    private void btnAppendText_Click(object sender, EventArgs e)
    {
        txtText.Text = string.Empty;
        DateTime startTime = DateTime.Now;
        for (int i = 0; i < 10000; i++)
        {
            txtText.AppendText(s);
        }
        DateTime endTime = DateTime.Now;
        txtTime.Text = (endTime.Ticks - startTime.Ticks).ToString();
    }

    private void btnConcante_Click(object sender, EventArgs e)
    {
        txtText.Text = string.Empty;
        DateTime startTime = DateTime.Now;
        for (int i = 0; i < 5000; i++)
        {
            txtText.Text += s;
        }
        DateTime endTime = DateTime.Now;
        txtTime.Text = (endTime.Ticks - startTime.Ticks).ToString();
    }



输出是非常令人惊讶的,结果
测试1:多行属性为true
我不得不迭代减少一半,即5000 text并置,因为它是说很长的时间。

Output were very surprising,
TEST 1: Multiline property is true I had to reduce the iteration to half i.e. 5000 for text concatenation as it was talking very long time

btnAppendText_Click 产量的 37222129 几乎3-4秒为10000迭代结果
btnConcante_Click 输出上 txtTime 14449906487 然后25分钟,仅5000迭代

从上面的结果真的很清楚的是, AppendText通过更快,效率(当多行),那么级联

From the above result it is really clear that, AppendText is much faster and efficient (when Multiline is True) then Concatenation

TEST 2:多行属性设置为false

btnConcante_Click txtTime 为 39862280 几乎3-4秒为10000迭代结果
btnAppendText_Click txtTime 输出 1043279672 差不多2-3分钟10000次迭代

从上面的结果真的很明显,级联速度更快,效率(当),那么 AppendText通过

From the above result it is really clear that, Concatenation is faster and efficient (when Multiline is false) then AppendText

这篇关于TextBox.Text + =&QUOT;串英寸; VS TextBox.AppendText(QUOT;串QUOT;);的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-23 03:40