委托属性的应用。

来源:互联网 发布:侠义道1 有mac 编辑:程序博客网 时间:2024/05/18 13:42

定义委托:

 

 1     //写一个委托,谁愿意做什么操作就自己写去,哥不管了!
 2     public delegate int delegateAllLen<T>(List<T> list);
 3         //写一个委托,谁愿意做什么操作就自己写去,哥不管了!
 4         public delegateAllLen<T> FuncAllLen { getset; }
 5         public int AllLen()
 6         {
 7             if (FuncAllLen != null)
 8             {
 9                 return FuncAllLen(_List);
10             }
11             return 0;
12         }

 

/// <summary>
 2         /// 委托的实现
 3         /// </summary>
 4         /// <param name="bln"></param>
 5         /// <returns></returns>
 6         public int Temp(List<bool> bln)
 7         {
 8             int i = 0;
 9             foreach (var item in bln)
10             {
11                 if (item) i++;
12             }
13             return i;
14         }
15 
16         public void Main()
17         {
18             var list = new MyList<bool>();
19 
20             list._List.Add(true);
21             list._List.Add(false);
22             list._List.Add(true);
23             ///实现委托
24             list.FuncAllLen += Temp;  //实现将方法赋值给委托属性。
25             MessageBox.Show(list.AllLen().ToString());//调用委托。
26         }