用C#继承

Mar*_*hal 0 c# polymorphism inheritance winforms

我试图使用继承使用ref.class将字符串从一个表单传递到另一个表单.我看着它,说实话,我认为这应该工作.但是在调试时,我的设置textBox中没有任何内容出现...

这是我的参考类:

    class Ref
{

    private String _url;

    public String Sett
    {

        set { _url = value; }
    }
    public String Gett
    {
        get { return _url; }
    }
Run Code Online (Sandbox Code Playgroud)

我从主窗体设置它并从设置表单中获取它

这是我的主要表格:

    private void webBrowser1_DocumentCompleted(object sender,WebBrowserDocumentCompletedEventArgs e)
        {Ref reff = new Ref();
        this.Text = webBrowser1.Document.Title + " - NHS Cerner Booking Dash";
        textBox1.Text = webBrowser1.Document.Url.ToString();
        reff.Sett = webBrowser1.Document.Url.ToString();
Run Code Online (Sandbox Code Playgroud)

最后这是我的设置表单

    public void load()
    {
        Ref reff = new Ref();
        textBox3.Text = reff.Gett;
    }
Run Code Online (Sandbox Code Playgroud)

我相信这看起来有点复杂.因此,为了澄清我想从主窗体中获取URL并将其设置为我的ref.class,然后从Ref.class中获取它以将其设置为我的Settings窗体中的textBox.谢谢你的期待.

Jon*_*eet 5

首先,这与继承无关.

不,它肯定不会起作用.您正在创建两个单独的实例Ref- 因此在其中一个中设置值将不会使其在另一个中可用.您需要创建一个实例Ref并使两个表单都知道它 - 以便它们可以将其用作共享通信通道.

就个人而言,我认为这不是表格之间沟通的最佳方式 - 例如,你应该考虑使用事件 - 但这就是为什么它现在不起作用的原因.

正如评论中所指出的,拥有两个独立的属性是非常奇怪的.如果我真的想要这种行为,我会把那个类写成:

public class MutableWrapper<T>
{
    public T Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)