Ser*_*rvy 10
这是惯例是存在触发事件将与"开",即作为前缀的方法OnSomeEvent被调用时,将触发SomeEvent事件.没有关键字或其他语言构造会强制使用"On"前缀; 它只是一个惯例.
当您需要允许从类定义外部显式触发事件时,通常也会使用创建此类方法(通常来自继承类,因此通常会使用这些方法protected).如果类的设计使得事件只是从定义它的类中触发,那么通常不会有任何"On"方法,这就是为什么在很多情况下你没有看到它的原因.
根据评论:
谢谢 .你碰巧知道你添加的内容的任何URL.我需要更多的澄清来解释它.
这只是为了解释; 作为一般情况的完整示例,这是已建立的约定 - 不是规则 - 存在强制执行此操作 - 它只是许多代码使用的常见模式:
public class SomeBaseClassWithAnEvent
{
public event EventHandler SomeEvent;
protected virtual void OnSomeEvent()
{
var handler = SomeEvent;
if (handler != null) handler(this, EventArgs.Empty);
}
public void SomeOtherMethodThatHasSideEvents()
{
//...do stuff...
OnSomeEvent();
//...do more stuff...
}
}
public class SomeSubclass : SomeBaseClassWithAnEvent
{
protected override void OnSomeEvent()
{
// custom stuff here to do it before the event
base.OnSomeEvent();
// or here to do it after the event
}
}
Run Code Online (Sandbox Code Playgroud)
这种模式允许两件事:
On...方法来调用事件On...方法如果你想看看这种模式是根深蒂固的 - 只需进入你正在使用的任何框架(winforms,wpf,asp.net,asp.net mvc,你能想到的任何其他东西)override,然后输入,然后向下滚动到On:

(提示......滚动条在该范围内持续了一段时间On...)
| 归档时间: |
|
| 查看次数: |
2803 次 |
| 最近记录: |