博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 委托的一些使用上的小技巧
阅读量:5917 次
发布时间:2019-06-19

本文共 1793 字,大约阅读时间需要 5 分钟。

1、委托是一种数据类型,我们可以在任何定义类的地方定义委托,在任何声明类的地方声明委托

2、初始化委托有两种方式,代码如下:

(1)、像类一样初始化委托

public delegate void SayHelloEventHandler(string _name);SayHelloEventHander sh = new SayHelloEventHander(ChineseSayHello);//创建了一个SayHelloEventHandler的实例,并给SayHelloEventHandler构造函数赋了初值ChineseSayHelloprivate static void ChineseSayHello(string name){            }

(2)、赋初值

public delegate void SayHelloEventHandler(string _name);SayHelloEventHander handler;handler=new Program().ChineseSayHello;//通过赋初值的方式private void ChineseSayHello(string name){            }

 

3、第一次初始化委托时,不能使用+=或者-=操作,只能使用2中提供的2中初始化委托的方式,否则编译其会报错。

4、初始化化完委托之后,委托可以使用+=或者-=操作,因为一个委托可以绑定多个方法,具体是多少,每测过,你可以写个循环测下,代码如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Delegate{    class Program    {        public delegate void SayHelloEventHandler(string name);        static void Main(string[] args) {            Program p = new Program();            string n="张三";            SayHelloEventHandler handler;            handler = p.SayChHi;            handler += p.SayChHi;            handler += p.SayChHi;            handler += p.SayChHi;            handler += p.SayChHi;            handler += p.SayChHi;            handler += p.SayChHi;            handler += p.SayChHi;            p.SayHi(n, handler);        }        public void SayHi(string name,SayHelloEventHandler handler) {            handler(name);        }        public void SayChHi(string name) {            Console.WriteLine("你好 " + name);            Console.ReadKey();        }        public void SayEnglishHi(string name) {            Console.WriteLine("Hello " + name);            Console.ReadKey();        }    }}

绑定多次的结果就是执行多次绑定的方法,当前委托绑定了8个相同的方法,所以执行了8次同一个方法.

 

转载于:https://www.cnblogs.com/GreenLeaves/p/6861186.html

你可能感兴趣的文章
8.3. 搜索
查看>>
OK335xS 系统启动配置解析
查看>>
第 1 章 DB-Engines - DB-Engines Ranking
查看>>
【IntelliJ Idea】idea快速创建maven spring项目
查看>>
Nancy总结(三)Nancy资料介绍
查看>>
第 172 章 TRAC
查看>>
76.5. Attic - 拥有重复数据删除技术的备份软件
查看>>
MPLS LDP随堂笔记1
查看>>
软硬链接、文件删除原理、linux中的三种时间、chkconfig优化
查看>>
写在最前面 - 每天5分钟玩转容器技术(1)
查看>>
谈谈一些有趣的CSS题目(七)-- 消失的边界线问题
查看>>
睡眠不好
查看>>
159.3. salt 命令
查看>>
UWP 统一平台开发介绍
查看>>
15.25. Search
查看>>
Docker简明教程
查看>>
数据蒋堂 | 有序分组
查看>>
中化部署云计算胆大心细
查看>>
javascript原型理解一种
查看>>
C语言删除字符串中重复的字符
查看>>