C#中的委托和事件

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

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


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

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


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

  怎样写呢?


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

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

  举例:

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





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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 32
    评论
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值