簡體   English   中英

我如何使用baseclass中的eventhandler

[英]How do I use eventhandler from baseclass

我是否可以在派生類中使用ChangeHappend。 如果是這樣的話?
如果沒有,我該怎么辦呢?

class Base
{
    public delegate void ChangeHandler(object sender);
    public event ChangeHandler ChangeHappend;

    private int _foo;
    public int Foo
    {
        set
        {
            if (_foo == value) return;
            _foo = value;
            ChangeHappend(this);
        }
    }
}

class Derived : Base
{
    private int _bar;
    public int Bar
    {
        set
        {
            if (_bar == value) return;
            _bar = value;
            ChangeHappend(this); // This line gives an error. How can I use ChangeHappend here in Derived?
        }
    }
}

使用標准模式:在[EventName]上

public class MyBaseClass {
    protected virtual void OnSomethingHappend( EventArgs e ) {
        EventHandler handler = this.SomethingHappend;
        if ( null != handler ) { handler( this, e ); }
    }
    public event EventhHandler SomethingHappend;
}

public MyDerivedClass : MyBaseClass {
    public void DoSomething() {
        this.OnSomethingHappend( EventArgs.Empty );
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM