c 什么时候用委托(c#中委托的作用是什么)

:暂无数据 2026-04-15 16:30:03 1

c 什么时候用委托(c#中委托的作用是什么)

大家好,c 什么时候用委托相信很多的网友都不是很明白,包括c#中委托的作用是什么也是一样,不过没有关系,接下来就来为大家分享关于c 什么时候用委托和c#中委托的作用是什么的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

c#中委托的作用是什么

使用委托的作用:使程序员可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。与C或C++中的函数指针不同,委托是面向对象,而且是类型安全的。

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

委托和事件在.NET Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。

扩展资料:

委托的本质:

在C#中使用delegate关键字定义委托,然后使用我们熟悉的函数调用的语法来调用委托,如上述例子中的cb(“skynet”,23)。在这简单的表象背后,.NET编译器可以知道定义CallBack委托时,编译器为我们做了如下工作,实际上定义任何委托编译器都会做如下工作:

声明一个类,对应上图中的.class nested public auto ansi sealed。该类扩展自System.MulticastDelegate,对应上图中的extends System.MulticastDelegate。

该类包含一个构造器,对应上图中的.ctor: void(object ,native int)。该类包含三个方法,分别是BeginInvoke、EndInvoke、Invoke。

委托 c# 再什么时候用

  委托应该属于高级编程的部分了,我也是查了很久,大部分人好像根本不明白,就是复制别人的东西,关键部分都很笼统,就我的了解简单的和你说一下吧,不是太专业,不过你应该可以看明白!
  -----------------------------------------------------------
  委托 在net框架中其实就是一个类,所以定义的时候你可以随便找个地方定义,比如在其他的类里面或者直接在命名空间下定义都可以;另外既然它也是类,所以使用的时候你就要实例化它,例如:
  delegate int MyDelegate(int i);
  //上面这句就是声明一个委托,其中网上所谓的签名就是指的返回类型int和参数int i;这个委托声明后,只能和签名相同的方法绑定使用,例如:
  //其中myMethod就是你在后面要调用的方法了,它的签名必须和委托的一致,即拥有相同的返回类型和参数
  public int myMethod(int j)
  {
  return ++j;
  }
  在实例化委托的地方就可以直接调用方法
  MyDelegate MyD=new MyDelegate("myMethod");//实例化
  MyD(5);//这里其实调用的就是meMethod方法,返回6;
  --------------------------------------------------------------
  对于使用程序结构 大致可以理解了吧?
  对与你的问题,在什么地方什么时候使用委托呢?
  首先说在net框架中,委托经常和事件绑定使用,所以它是实现框架中事件处理机制的基础。具体的使用简单的几句是说不清楚的。
  net中有自己的规范,如事件参数要继承EventArgs类,事件多以EventHandler结束等等,想往深里研究的话,可以到msdn文档库中查看相关资料进行学习。
  如果自己编写框架类项目时,也可以有自己的规范,比如在你想动态执行某个方法的时候就可以使用委托;举个简单的例子:
  public int myMethod(int j){}
  这个方法的参数是int类型的,所以你只能传递int行的参数,如果你将int改为MyDelegate即:public int meMethod(MyDelegate j){};//MyD就是上面我们定义的委托
  这样你就可以将和委托具有相同签名的方法传递给这个myMethod方法了,由于时间关系说的不是太细致,如果有问题可以一起通过baidu HI探讨,给我留言也可以。
  全部手写的,你仔细看一下,但愿可以帮助你,互相学习!
  另外加一句,很多教材把委托比喻为邮局,这个理解挺形象的,就是托邮局帮我们做某件事情,然后反馈给我们相关的信息,委托和事件绑定基本就是这样,通过委托订阅我们感兴趣的信息等等。

关于c 什么时候用委托和c#中委托的作用是什么的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

c 什么时候用委托(c#中委托的作用是什么)

本文编辑:admin

更多文章:


全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)

全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)

大家好,关于全球新冠肺炎疫情背景下航运发展很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决

2026年9月7日 17:10

matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)

matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)

大家好,关于matlab求解带字母参数方程组很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数的知识点,相信应该可以解决大家的一些困惑和问题,

2026年9月7日 16:30

oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)

oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)

本篇文章给大家谈谈oracle中的循环语句,以及下面哪个不是oracle程序设计中的循环语句 a for对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年9月7日 15:30

多表查询怎么做(Excel技巧:如何多表同步筛选)

多表查询怎么做(Excel技巧:如何多表同步筛选)

各位老铁们好,相信很多人对多表查询怎么做都不是特别的了解,因此呢,今天就来为大家分享下关于多表查询怎么做以及Excel技巧:如何多表同步筛选的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年9月7日 15:10

服装店网站网页设计(服装网站建设目标设计要看甲方)

服装店网站网页设计(服装网站建设目标设计要看甲方)

“服装店网站网页设计”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看服装店网站网页设计(服装网站建设目标设计要看甲方)!

2026年9月7日 14:10

电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)

电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)

大家好,电脑里2个系统怎么删除一个相信很多的网友都不是很明白,包括电脑开机显示有两个系统,如何删除一个也是一样,不过没有关系,接下来就来为大家分享关于电脑里2个系统怎么删除一个和电脑开机显示有两个系统,如何删除一个的一些知识点,大家可以关注

2026年9月7日 12:20

苹果手机代码大全(恢复更新固件iOS未知错误代码解决大全)

苹果手机代码大全(恢复更新固件iOS未知错误代码解决大全)

大家好,今天小编来为大家解答以下的问题,关于苹果手机代码大全,恢复更新固件iOS未知错误代码解决大全这个很多人还不知道,现在让我们一起来看看吧!

2026年9月7日 10:20

scrollthrough意思(“scroll”是什么意思)

scrollthrough意思(“scroll”是什么意思)

今天给各位分享“scroll”是什么意思的知识,其中也会对“scroll”是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月7日 08:00

怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)

怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)

本篇文章给大家谈谈怎么激活keygen,以及注册机如何激活cad2008一个简单激活cad2008的方法对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站

2026年9月7日 06:30

vba编写excel插件(excel vba中能否动态创建控件)

vba编写excel插件(excel vba中能否动态创建控件)

其实vba编写excel插件的问题并不复杂,但是又很多的朋友都不太了解excel vba中能否动态创建控件,因此呢,今天小编就来为大家分享vba编写excel插件的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年9月7日 04:40

最近更新

热门文章

dessert(dessert是什么意思)
2026-05-03 12:45:03 浏览:7
标签列表