初识委托

本文介绍了委托的基本概念,解释了如何通过使用委托来提高程序的可扩展性和灵活性,并提供了一个具体的排序算法实现示例。

委托的概念

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

如何使用委托
      在使用委托的时候,你可以像对待一个类一样对待它。即先声明,再实例化。只是有点不同,类在实例化之后叫对象或实例,但委托在实例化后仍叫委托。
简单的实例如下:
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace DelegateDemo
 8 {
 9     //定义一个委托
10     public  delegate  bool   Compare(int x,int y);
11   public  class PaiXuDemo
12     {
13         private int[] arry;
14         public int[] Arry
15         {
16             set { arry = value; }
17             get { return arry; }
18         }
19           // 比大
20          public bool Greater(int left, int right)
21          {
22               return left > right;
23          }
24          // 比小
25          public bool Less(int left, int right)
26          {
27               return !Greater(left, right);
28          }
29        public void Sort(Compare compare)
30          {
31               for (int i = 0; i < arry.Length-1; i++)
32               {
33                    for (int j = i + 1; j < arry.Length; j++)
34                    {
35                        if (compare(arry[i], arry[j]))
36                        {
37                             int tmp = arry[i];
38                             arry[i] = arry[j];
39                             arry[j] = tmp;
40                        }
41                    }
42               }
43          }
44 
45        static void Main(string[] args) {
46            PaiXuDemo sample = new PaiXuDemo();
47            sample.Arry = GetArry();
48            // 使用降序
49            sample.Sort(new Compare(sample.Less));
50          PrintArry(sample);      
51            Console.ReadKey();
52        }
53       /// <summary>
54       /// 循环输出数字
55       /// </summary>
56       /// <param name="sample"></param>
57        private static void PrintArry(PaiXuDemo sample)
58        {
59            for (int i = 0; i < sample.Arry.Length; i++)
60            {
61                Console.WriteLine(sample.Arry[i]);
62            }
63        }
64       /// <summary>
65       /// 获取字符以及长度
66       /// </summary>
67       /// <returns></returns>
68        private static int[] GetArry()
69        {
70            int[] arry = { 12, 14, 15, 16, 184, 1, 56, 189, 652, 2 };
71            return arry;
72        }
73     }
74 }
View Code
效果图如下:

 

 

 

 

 

转载于:https://www.cnblogs.com/kiamer2425/p/7756182.html

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值