c#事件复习

原创 2016年08月28日 20:21:19
事件和委托和有多相似的地方,都可以理解为函数的指针,但是最大的区别是:委托可以在定义的类外部调用,但是事件只能在定义的类的内部调用。所以委托其实有一种危险性,即:如果定义的方法是private,但是定义的委托是public,这个委托指向的这个方法依然能在类的外部调用,这样就打破了类的封装性,而事件正是避免了这种状况的发生,只能在类的外部给这个事件赋值,但是不能在类的外部调用这个事件。
例子:
using System;
class A
{  
    public delegate  void wt();   //定义委托
    public event wt t;  //定义事件
    public A()
    {
        t += showA;   //添加方法
    }
 
    private void showA()
    {
        Console.WriteLine("showa");
    }
    public void show()
    {
        t();   //调用事件
    }
    
}

class B
{
    public void showB()
    {
        Console.WriteLine("showb");
    }
}

class Test
{
    public  static void Main()
    {
        A a = new A();
        a.show();
        B b = new B();

    }
}


相关文章推荐

C# 复习笔记 消息与事件处理

C# 复习笔记 消息与事件处理学习Windows编程后,有时候需要对系统消息或者事件做出自己的响应或者说自己拦截一些消息,实现某个事件或者函数的触发,这时就需要对系统消息进行处理. 大多数直接开始学...

C#委托和事件

  • 2015年08月14日 17:18
  • 95KB
  • 下载

C#事件委托和回调的用法区别

事件包括:事件发送者、事件接收者和事件处理程序。 关于事件,我们首要知道的是事件的发送者必须知道发送什么类型的事件,以及相关 的事件参数。而事件的接收者必须了解其事件的处理方法必须使用的返回类型和...

C# 中的委托和事件

  • 2015年05月15日 08:36
  • 222KB
  • 下载

C#中comboBox绑定数据集后事件中取值出System.data.dataRowView问题

写了一段代码,希望通过comboBox选项自动关联填充另外两项输入框时发现数据获取异常 comboBox绑定数据源代码如下:             this.cbKHMC.DataSource = ...

C#委托与事件(张子阳).pdf

  • 2012年10月21日 17:08
  • 634KB
  • 下载

C# 监听串口数据并触发事件

using System; using System.Text; using System.Net; using System.Net.Sockets; namespace HtTcp { ...
  • li_ser
  • li_ser
  • 2016年09月27日 15:46
  • 2583
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c#事件复习
举报原因:
原因补充:

(最多只允许输入30个字)