Delegate委托

委托的本质是什么?----Clas(类),继承自一个特殊类 MulticastDelegate,自己在定义类的时候是无法去继承的;--包含的有构造函数+方法

这个类的构造函数参数---Method--方法

1.ILSply反编译--委托的本质其实是一个类
2.委托本质是一个类,这个类的构造函数参数---Method--方法
3.委托可以通过New来实例化,要求传递一个和这个委托的参数和返回值完全匹配的方法,委托有什么参数(几个,什么类型)---完全匹配

//4.---委托的实例--可以直接指向一个和这个委托参数+返回值完全匹配的方法;--语法糖--编译器给我们提供额便捷功能--new WithReturnNoPara();省略掉了

//5.执行委托实例的Invoke方法--去执行这个委托实例化的指向的这个方法---执行方法;
//6.就可以执行这个实例内部的三个方法
//7.多种实例化:new、 直接指向一个方法,指向一个Lambad表达式

SayHiDalegate sayHiDalegate = new SayHiDalegate(student.SayHiWuhHan);

 SayHiDalegate sayHiDalegate =student.SayHiWuhHan;  

student.SayHiperfect(sayHiDalegate);

 

public void SayHiperfect(SayHiDalegate sayHiDalegate)
{
Console.WriteLine("问候前,招招手。。。");
sayHiDalegate.Invoke();
}

  public delegate void SayHiDalegate();

 

//问题:什么情况下?可以考虑使用委托?
//1.方法内部业务逻辑耦合严重---考虑使用委托
//2.如果多个方法,有很多重复代码---去掉重复代码--逻辑重用---考虑使用委托

//1.委托就是跟一个盒子(箱子)一样,可以把一个行为包含在委托中;
//2.委托包含方法,方法内部不能包含委托的实例么?

 

posted @   wolfsocket  阅读(20)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示