Nif*_*fle 4 .net c# delegates event-handling
我是否可以在派生类中使用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?
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用标准模式:在[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 );
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1726 次 |
| 最近记录: |