初识委托_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 初识委托

初识委托

 2017/10/31 21:11:35  kiamer  程序员俱乐部  我要评论(0)
  • 摘要:委托的概念委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。通俗的来说委托是一个类型,它与Class是同一级别的。如何使用委托在使用委托的时候,你可以像对待一个类一样对待它。即先声明,再实例化。只是有点不同,类在实例化之后叫对象或实例,但委托在实例化后仍叫委托。简单的实例如下:1usingSystem;2usingSystem
  • 标签:

委托的概念

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

class="para">如何使用委托

      在使用委托的时候,你可以像对待一个类一样对待它。即先声明,再实例化。只是有点不同,类在实例化之后叫对象或实例,但委托在实例化后仍叫委托。

简单的实例如下:

 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 }
logs_code_collapse">View Code

效果图如下:

 

 

 

 

 

  • 相关文章
发表评论
用户名: 匿名