当前位置: 首页 > news >正文

做百度手机网站快html网页导航栏模板

做百度手机网站快,html网页导航栏模板,云网站 深圳,什么网站都有漏洞文章目录 前言一、什么是委托?二、委托的应用1.使用委托的具体步骤2.委托的类型(命名方法委托,多播委托,匿名委托)① 命名方法委托:② 多播委托:③ 匿名委托: 总结 前言 最近有用到…

文章目录

  • 前言
  • 一、什么是委托?
  • 二、委托的应用
    • 1.使用委托的具体步骤
    • 2.委托的类型(命名方法委托,多播委托,匿名委托)
    • ① 命名方法委托:
    • ② 多播委托:
    • ③ 匿名委托:
  • 总结


前言

最近有用到委托,所以重新复习了一下委托的相关知识,在此记录一下。


一、什么是委托?

委托是C#中的一种引用类型,委托的本质是一个类,定义了方法的类型,是将方法作为参数传递到另一个方法的特殊类。
委托可以认为是持有一个或者多个方法的对象,当委托被调用时,它持有的方法也会被调用。
委托是方法的抽象,它存储的就是一系列具有相同签名和返回回类型的方法的地址。
委托不是对象,是一种类型。

二、委托的应用

委托的使用遵循三步走的原则,即定义声明委托,实例化委托,调用委托。

1.使用委托的具体步骤

  1. 定义声明委托
  2. 实例化委托(给委托赋值)
  3. 调用委托
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/119dd651bf3d40e8851

一般情况往委托中添加方法,其实是往委托的方法列表中添加,它是一个包含有序方法列表的对象,这些方法具有相同的签名和返回类型。

  • 方法的列表称为调用列表
  • 委托保存的方法可以来自任何类或结构。(方法的满足条件:委托的返回类型、委托的签名)
  • 调用列表中的方法可以是实例方法也可以是静态方法。
  • 在调用委托的时候,会执行其调用列表中的所有方法。

2.委托的类型(命名方法委托,多播委托,匿名委托)

委托可以分为 命名方法委托、多播委托、匿名委托,其中命名方法委托是最常见的一种委托。

① 命名方法委托:

定义语法格式:

 修饰符  delegate  返回值类型  委托名 ( 参数列表 );

实例化委托,命名方法委托在实例化委托时必须带入方法的具体名称,语法如下

委托名  委托对象名 = new 委托名 ( 方法名 );

委托中传递的方法名既可以是静态方法的名称,也可以是实例方法的名称。
需要注意的是,在委托中所写的方法名必须与委托定义时的返回值类型和参数列表相同。
在实例化委托后即可调用委托,语法形式如下:

委托对象名 ( 参数列表 );
实例1:在委托中注入静态方法

在这里插入图片描述

实例2:在委托中注入实例方法

在这里插入图片描述

② 多播委托:

多播委托是指在一个委托中注册多个方法,在注册方法时可以在委托中使用加号运算符或者减号运算符来实现添加或撤销方法。 实例:模拟点餐平台预定不同类型的商品
class Program{//定义购买商品委托public delegate void OrderDelegate();static void Main(string[] args){//实例化委托OrderDelegate buy = new OrderDelegate(Order.BuyFood);//向委托中注册方法buy += Order.BuyCake;buy += Order.BuyFlower;//调用委托buy();Console.ReadLine();}}public class Order{//委托方法(返回值和参数必须与定义的委托类型一样)public static void BuyFood(){Console.WriteLine("购买快餐!");}public static void BuyCake(){Console.WriteLine("购买蛋糕!");}public static void BuyFlower(){Console.WriteLine("购买鲜花!");}}

结果:
在这里插入图片描述
在委托注册方法时使用 -= 操作符可以撤销委托
在使用多播委托时需要注意,在委托中注册的方法参数列表必须与委托定义的参数列表相同,否则不能将方法添加到委托上。

③ 匿名委托:

匿名委托是指在使用匿名方法注册在委托上,实际上是在委托中通过定义代码块来实现委托的作用。语法格式如下:
//1. 定义委托
修饰符  delegate  返回值类型  委托名 ( 参数列表 );//2. 定义匿名委托
委托名  委托对象 = delegate
{//代码块
};//3. 调用匿名委托
委托对象名 ( 参数列表 );
实例:使用匿名委托计算长方形的面积
class Program
{//定义委托public delegate void AreaDelegate(double length,double width);static void Main(string[] args){Console.WriteLine("请输入长方形的长:");double length = double.Parse(Console.ReadLine());Console.WriteLine("请输入长方形的宽:");double width = double.Parse(Console.ReadLine());AreaDelegate area = delegate{Console.WriteLine("长方形的面积为:" + length * width);};area(length, width);Console.ReadLine();}
}

结果:
在这里插入图片描述
由于匿名委托并不能很好地实现代码的重用,匿名委托通常适用于实现一些仅需要使用一次委托中代码的情况,并且代码比较少。


总结

以上就是我对C#中有关于委托的相关知识整理,希望对大家有所进步,如有不对的地方,也请不要怪罪哦
参考:https://blog.csdn.net/luan0125/article/details/122957212

http://www.yayakq.cn/news/916681/

相关文章:

  • 内蒙古自治区生态文明建设网站工厂视频网站建设
  • wordpress 批量建站中小企业网站建设与推广
  • 网站搜索排名和什么有关系电商平面设计师
  • 中小企业官方网站社交电商平台
  • 营销型网站的付费推广渠道外贸英文网站建设
  • 最新电大网站开发维护买房子怎么找房源
  • 广州网站设计廊坊公司电话安阳建设网站
  • 网站建设与网站主机的选择湘潭城乡建设发展集团网站
  • 淘宝客推广网站建设wordpress教学视屏
  • 兼职工厂网站建设大连网站建设-网龙科技
  • 怎么上传自己做的网站嘉定网络公司
  • 网站页面开发流程做免费网站教程国vs
  • 阿里云虚拟主机可以做几个网站沈阳网站关键词优化哪家好
  • 阜沙网站建设湖南省建设监理协会官网
  • 网站建设补贴p2p网站开发的多少钱
  • 济南网站开发设计网站建设常用的方法
  • 无锡网站营销公司哪家好wordpress不能编辑
  • 网站建设兼职挣多少钱wordpress汉化免费企业主题
  • 鱼台网站建设比一网站建设
  • 建设厅企业锁在哪个网站登录国家网站域名
  • 网站建设后如何检测阿里网站建设需要准备什么
  • 公司做网站一般多少钱运营wordpress速度快
  • 高端品牌型 营销型网站建设购物网站类型
  • 网站的域名能修改么南昌网站设计哪家专业好
  • 网站建设中图片尺寸富阳区建设工程质监站网站
  • 昆山网站设计哪家好网站空间有什么用
  • 松原网站建设楚雄seo
  • 深圳 企业 网站建设个人备案网站可以做商城展示
  • 做网站怎样和客户沟通新昌品牌网站建设
  • 温州论坛网站首页移动端是指手机吗