关于C#中Delegate的使用

  用了很久的Delegate,但一直迷迷糊糊的,每次用到时都得从网上再查一遍资料。今天在查资料时发现一篇讲的比较浅显易懂的文章,分享一下。里面展示了委托的创建,应用和加入删除,感觉挺不错的。而且,再结合我得理解“委托就相当于一个邮局,可以订阅相同类型的资料”,就感觉明白了好多。

 废话不多说,上文章,希望对大家有用。

委托

1、 什么是委托?

委托就是具有相同签名和返回值类型的有序方法列表

它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递

  1. 是一种引用类型
  2. 方法的列表称为调用列表
  3. 当委托被调用时,它调用列表中的每个方法

画个图来帮大家了解下委托:

其实委托,很容易理解,通过图可以体会到,可以把委托看作是一种用来装方法的容器。

2、 委托的声明

先来看看委托是如何声明的

     a、委托类型的声明看上去与方法的声明很类似,有返回类型和签名。返回类型和签名指定了委托接受的方法的形式

     b、委托类型与方法声明的不同之处:

        ▲ 委托是以关键字delegate开头的

        ▲ 委托没有方法主体

3、 委托的应用

给大家写个简单易懂的实例,看完就知道委托时怎么一回事了

先创建两个窗体Form1和Form2,点击Form1中的按钮弹出Form2,可以在Form2中点击按钮改变Form1的背景色

接下来,我们来看看里面的具体代码,看看用委托是如何实现的

首先,先声明一个委托

Form1里面的代码:

Form2里面的代码:

运行代码,点击Form1中的按钮,弹出Form2,

在Form2中点击改变Form1颜色按钮,可以发现,Form1的背景色瞬间变为蓝色

这样我们就跨窗体操作了控件。

仔细观察以下两句代码我们可以知道,如何向委托这个容器添加方法。当实例化委托后,

我们可以用+=向委托里面继续添加方法;

小结:委托是面向对象的,它定义方法签名的类型,可以与具有兼容签名的任何方法关联。我们可以通过委托调用方法。委托用于将方法作为参数传递给其他方法。

https://www.cnblogs.com/ZhengDaChuan/p/3765005.html

--------------------------------------------------------------------------

大家还有什么更好的理解方法的话尽管说,共同进步。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hkmaike

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值