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

佛山h5网站公司今日十大新闻

佛山h5网站公司,今日十大新闻,wordpress 二级目录 404,网站建设 阿里云文章目录 前言一、什么是委托?二、委托的应用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.mmbaike.com/news/89621.html

相关文章:

  • 深圳十大网站建设seo快速排名优化方式
  • 四川省城乡和住房建设厅官方网站西安网站建设比较好的公司
  • 丽水市城乡建设局网站旺道网站排名优化
  • 网站备案 网站名称营销型网站建设托管
  • 在线咨询客服系统成都百度网站排名优化
  • 台州市建设规划局路桥分局网站培训班招生方案
  • 怎么看网站有没有做推广东莞有限公司seo
  • 交互网站怎么做的厦门seo外包服务
  • 江门网站制作模板免费网站做seo
  • wordpress怎么做二级导航巩义网站推广优化
  • b2b网站开发商需求分析今日头条极速版官网
  • 搜索引擎作弊网站有哪些希爱力跟万艾可哪个猛
  • 国内高端网站定制网站流量数据
  • 网站如何搬家cms快速建站
  • 合肥专业做网站互联网广告公司排名前十
  • 做网站如何赚广费网站分析报告范文
  • 甘肃网站建设费用新东方英语线下培训学校
  • axure rp 做网站原型怎么关闭seo综合查询
  • 长沙seo技术培训网站优化培训
  • 做网站套模板网络营销推广公司有哪些
  • 经典网站设计seo网页优化平台
  • 网站主机安全营销的手段和方法
  • 招聘网站哪个好用社交网络的推广方法有哪些
  • 网站建设实训报告2000字苏州关键词seo排名
  • 创新优典网站建设竞价推广工作内容
  • 如何做自己网站平台网站seo标题是什么意思
  • 网站步骤温州seo品牌优化软件
  • 网站外部链接怎么做如何编写一个网站
  • 微网站免费软件电商网站建设定制
  • 黑黄logo网站外贸网站seo教程