zoukankan      html  css  js  c++  java
  • C# 关键字Event

    1》》》

    在委托实例前,不加event,那这个委托就是一个普通的委托,我们可以用别的函数调用,也可以直接用对象调用,但加上关键字之后,只能用成员函数调用 

    1. public delegate void MyButtonEventHandler(string msg);
    2. public class MyButton
    3. {
    4. public MyButtonEventHandler Click;
    5. private string msg;
    6. public void OnClick()
    7. {
    8. if (Click != null)
    9. {
    10. Click("我点击了:" + msg);
    11. }
    12. }
    13. //构造函数
    14. public MyButton(string msg)
    15. {
    16. this.msg = msg;
    17. }
    18. }
     
    1. MyButton mb = new MyButton("MyButton对象");
    2. //指定点击按钮后的处理方法
    3. mb.Click += MyButton_Click;
    4. mb.Click("Click为公共委托对象,可任意触发执行委托方法,而无需触发OnClick方法");
    5. //点击按钮触发委托方法
    6. //mb.OnClick();
    7. //响应处理方法
    8. private void MyButton_Click(string msg)
    9. {
    10. Response.Write(msg);
    11. }

     

    使用event关键字:

    1. //定义一委托类型
    2. public delegate void MyButtonEventHandler(string msg);
    3. public class MyButton
    4. {
    5. //定义一委托实例(事件)
    6. public event MyButtonEventHandler Click;
    7. private string msg;
    8. ///
    9. /// 用于触发Click事件(模拟点击按钮)
    10. ///
    11. public void OnClick()
    12. {
    13. if (Click != null)
    14. {
    15. Click("我点击了:" + msg);
    16. }
    17. }
    18. //构造函数
    19. public MyButton(string msg)
    20. {
    21. this.msg = msg;
    22. }
    23. }

     

    1. MyButton mb = new MyButton("MyButton对象");
    2. mb.Click += MyButton_Click;
    3. //以下报错
    4. //mb.Click("Click为虽公共委托对象,但不可随意执行委托方法,因为有event关键字修饰!");
    5. //点击按钮后才触发委托方法(保证只有MyButton对象才可触发该事件)
    6. mb.OnClick();

     2》》》》》》》

    delegate 委托
    event 事件
    事件是特殊的委托,是多播委托,可以添加多个事件处理函数,但是委托只能绑定一个处理函数。

    c#中的delegate是Observe(观察者)设计模式的一种实现,以多播委托为底层支持,且是类型安全的。

    event就是delegate的一种应用。加上ev

  • 相关阅读:
    在ArcScene中为3D线设置纹理
    沿栅格单元边界生成块状等高线
    利用高程数据找出洼地和内部流域
    ArcMap 无法启动
    在分类渲染时,使用所有唯一值计算直方图
    ArcGIS三维分析扩展模块能否使用3ds max的模型
    如何创建带纹理的Multipatch
    云计算如“工业革命”般袭来 颠覆性改变需过安全关 狼人:
    金山毒霸2012正式公测 首次实现新病毒99秒查杀 狼人:
    瑞星:“云攻击”已成现实 狼人:
  • 原文地址:https://www.cnblogs.com/xiaofengfeng/p/3547915.html
Copyright © 2011-2022 走看看