C# 关于委托的小例子
发布时间:2020-12-16 01:13:52 所属栏目:百科 来源:网络整理
导读:本例子是一个关于委托的小例子[猫叫,狗跳,人喊]。仅供学习分享使用,如有不足之处,还请指正。 概述 委托是C#开发中一个非常重要的概念,理解起来也和常规的方法不同,但一旦理解清楚,就可以信手拈来,随处可用。 委托是对方法的抽象。它存储的就是一系列
本例子是一个关于委托的小例子[猫叫,狗跳,人喊]。仅供学习分享使用,如有不足之处,还请指正。 概述 委托是C#开发中一个非常重要的概念,理解起来也和常规的方法不同,但一旦理解清楚,就可以信手拈来,随处可用。 委托是对方法的抽象。它存储的就是一系列具有相同签名和返回回类型的方法的地址。调用委托的时候,委托包含的所有方法将被执行。 涉及知识点 委托的定义
效果图 如下【点击打开猫,弹出CatForm,点击喵喵按钮,触发事件,调用其他类的委托】: ? 核心代码 代码如下: 1 using System; 2 System.Collections.Generic; 3 System.Linq; 4 System.Text; 5 6 namespace DemoDelegate 7 { 8 public delegate void Handler();//定义一个委托类型 9 /// <summary> 10 /// 猫猫 11 </summary> 12 class Cat 13 { 14 15 public Handler Miao; 16 17 18 Miao叫的动作 19 20 void MaioMiao() 21 { 22 var action = Miao; 23 if (action != null) 24 { 25 action(); 26 } 27 } 28 } 29 } 30 /////////////////////////////////////////////////// 31 32 33 34 35 36 37 38 39 可爱的狗狗 40 41 Dog 42 43 Handler Tiao; 44 45 46 狗跳的动作 47 48 DogTiao() 49 50 Tiao; 51 52 53 54 55 56 57 58 59 /////////////////////////////////////////////// 60 61 62 63 64 65 66 67 68 69 主人 70 71 Master 72 73 Handler Han; 74 75 HanJiao() 76 77 Han; 78 79 80 81 82 83 84 85 } 界面类代码如下: 1 2 3 System.ComponentModel; 4 System.Data; 5 System.Drawing; 6 7 8 System.Windows.Forms; 9 10 11 12 partial MainForm : Form 13 14 private Dog dog; 15 16 Master master; 17 18 MainForm() 19 20 InitializeComponent(); 21 InitInfo(); 22 23 24 25 初始化信息 26 27 private InitInfo() { 28 dog = new Dog(); 29 dog.Tiao += TiaoMethod; 30 master = Master(); 31 master.Han += HanMethod; 32 33 34 35 喵喵 36 37 <param name="sender"></param> 38 <param name="e"></param> 39 void btnCatMiao_Click(object sender,EventArgs e) 40 41 CatForm catForm = CatForm(); 42 catForm.MiaoAction += MaioMethod; 43 catForm.ShowDialog(); 44 45 46 void MaioMethod( 47 this.txtCat.Text = "猫在父页面叫了"; 48 this.dog.DogTiao(); 49 .master.HanJiao(); 50 51 52 TiaoMethod() 53 54 this.txtDog.Text = 狗跳了 55 56 57 HanMethod() 58 59 this.txtMaster.Text = 别叫了 60 61 62 63 /////////////////////////////////////////////////////////////// 64 65 66 67 68 69 70 71 72 73 74 75 CatForm : Form 76 77 Cat cat; 78 79 event EventHandler MiaoAction; 80 81 CatForm() 82 83 84 85 86 87 88 cat = Cat(); 89 cat.Miao += 90 91 92 MaioMethod() 93 94 猫叫了 95 MiaoAction; 96 ) { 97 action(cat,); 98 99 100 101 102 103 .cat.MaioMiao(); 104 105 106 }
?源码下载 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |