首页 > 代码库 > C#中的委托和事件

C#中的委托和事件

  委托刚开始觉得特别难,可是后来理解后就觉得特别简单,进入正题。

  委托特别有意思,委托可以把一个方法定义成另一个方法的参数,例如

技术分享

  用关键字delegate定义一个GreetingDelegate委托,string定义了name的类型,而GreetingDelegate委托定义了MakeGreeting方法的类型。

  委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性


  可以将委托绑定到方法(我理解是委托中可以储存方法)

 怎样写呢?

技术分享

  下面我们来说说事件,其实事件可以理解成私有的委托,为什么是私有的呢?

  猫叫,老鼠会逃跑。这是两个动作,一个是猫叫,一个是老鼠逃跑,在现实生活中肯定没问题,但在代码中怎样实现的呢?就是用事件连接起来。还有就是上边为什么是私有的,如果这里还有其它的事物(大象,狮子),会引起其它事物的响应吗?定义成私有的就是避免其它事物也委托给它,因为这根本没有关关联。

  举例:

 现在假设热水器由三部分组成:热水器、警报器、显示器,它们来自于不同厂商并进行了组装。那么,应该是热水器仅仅负责烧水,它不能发出警报也不能显示水温;在水烧开时由警报器发出警报、显示器显示提示和水温。

技术分享




如果大家有什么见解,可以互相讨论。



C#中的委托和事件