为什么我的文本框中的“容量”属性没有更新

本文关键字:属性 更新 容量 文本 我的 为什么 | 更新日期: 2023-09-27 17:55:10

Length 属性可以很好地填充相应的 textBox3,并在从 textBox1 追加字符串时正确更新值。 textBox4 仅读取 16,即初始 StringBuilder 值(默认值),它不会在第 17 个字符处更改为 32(也不会在第 33 个字符处更改为 64)。

为什么容量属性不继续填充/更新文本框 4?

public partial class StringBuilderExercise : Form
{
    public StringBuilderExercise()
    {
        InitializeComponent();
    }
    StringBuilder buffer = new StringBuilder();
    // input textbox
    private void textBox1_TextChanged(object sender, EventArgs e)
    {
    }
    // button appends textBox1 string to textBox2
    private void append_Click(object sender, EventArgs e)
    {
        textBox2.AppendText(textBox1.Text);
        textBox3.Text = textBox2.Text.Length.ToString();
        textBox4.Text = buffer.Capacity.ToString();
        textBox1.Clear();
    }
    //read-only textbox to display string append concat
    private void textBox2_TextChanged(object sender, EventArgs e)
    {
    }
    //read-only textbox to display length of string
    private void textBox3_TextChanged(object sender, EventArgs e)
    {          
    }
    //read-only textbox to display capacity of string buffer
    private void textBox4_TextChanged(object sender, EventArgs e)
    {   
    }
}

为什么我的文本框中的“容量”属性没有更新

原因是你从不向 StringBuilder 追加任何数据。

我想你的意思是这样的:

buffer.Append(textBox1.Text);