0

我有一个问题,是否可以从派生类更改基类的字段值。就我而言,我有两个带有 windows 形式的基类RichTextBox,我想使用派生类来清除RichTextBox

初始化RichTextBox

        this.rtfCode.Location = new System.Drawing.Point(45, 26);
        this.rtfCode.Name = "rtfCode";
        this.rtfCode.ShowSelectionMargin = true;
        this.rtfCode.Size = new System.Drawing.Size(100, 96);
        this.rtfCode.TabIndex = 1;
        this.rtfCode.Text = "some text";

基类:

    public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Console.WriteLine(this.rtfCode.Text);
        DerivedClass f = new DerivedClass();
        Console.WriteLine(f.rtfCode.Text);
    }
}

我的派生类

    class DerivedClass:Program
{
    public DerivedClass()
    {
        base.rtfCode.Clear();
    }
}

当我执行程序并按下buttonRichTextBox 我仍然看到文本。

4

1 回答 1

1
Program a = new Program(); // a is an instance of Program
Console.WriteLine(a.rtfCode.Text);
DerivedClass f = new DerivedClass();// f is an instance of DerivedClass, which has nothing to do with a
Console.WriteLine(a.rtfCode.Text);

a并且f不是同一个实例。DerivedClass... 派生自 Program 的事实并没有改变这一点。

您必须将最后一行替换为

Console.WriteLine(f.rtfCode.Text);
于 2016-06-24T14:17:19.083 回答