当前位置: 首页 > news >正文

上海企业网站制作报价南宁网站排名优化

上海企业网站制作报价,南宁网站排名优化,外贸网站优化公司,微网站开发报价今天来介绍一下delegate和event。delegate在c#中可以定义一个函数类型,可以将函数作为一个对象来使用。event在c#中则可以看做一个函数的集合,event中包含了一个或多个函数。 delegate using System;public class MyClass {//定义委托public delegate v…

        今天来介绍一下delegate和event。delegate在c#中可以定义一个函数类型,可以将函数作为一个对象来使用。event在c#中则可以看做一个函数的集合,event中包含了一个或多个函数。

delegate

using System;public class MyClass
{//定义委托public delegate void EventHandler(string pParameter);//委托对象public EventHandler handler = null;public void Main(){handler = TestFunction;handler("Hello World");}private void TestFunction(string pParameter){Console.WriteLine("pParameter is " + pParameter);}
}

        如上代码,定义委托关键字“delegate”,委托的定义包含委托返回值、委托名称、委托参数。定义了委托类型之后,就可以声明委托对象了。EventHandler就是定义的委托类型,handler则是声明的委托对象。

        在使用过程中就可以将函数TestFunction赋值给handler,这里需要注意的是委托的返回值和参数必须和赋值函数的返回值和参数一致,否则编译器则会提示错误。在使用时像普通的函数调用一样使用即可。

event

using System;public class MyClass
{public delegate void EventHandler(string pParameter);public event EventHandler handler = null;public void Main(){handler += HelloWorld;handler += GoodMorning;handler("");handler -= GoodMorning;handler?.Invoke("");/*输出结果* This is HelloWorld* This is GoodMorning* This is HelloWorld*/}private void HelloWorld(string pParameter){Console.WriteLine("This is HelloWorld");}private void GoodMorning(string pParameter){Console.WriteLine("This is GoodMorning");}
}

        如上代码,使用关键字“event”来定义事件,这里的handler已经不是委托对象了,而是事件对象,事件的类型依然是委托类型。和委托对象不同,事件对象可以包含多个函数,通过+=运算符来进行添加函数。如果需要从事件中去除某个函数,则可以通过-=运算符来移除函数。

        事件除了可以像普通函数一样通过()括号的方式调用,也可以通过Invoke方法进行调用。作者个人比较喜欢用Invoke方法进行调用,这样可以使用条件运算符“?”来进行判断事件是否为空。

官方文档连接

delegate文档连接:https://learn.microsoft.com/zh-cn/dotnet/csharp/delegate-class

event文档连接:https://learn.microsoft.com/zh-cn/dotnet/csharp/programming-guide/events/how-to-subscribe-to-and-unsubscribe-from-events

http://www.yayakq.cn/news/114843/

相关文章:

  • 网站流量运营竞价推广托管公司介绍
  • 网站模板 酒店 中文广告设计图片用什么软件
  • 做哪类网站比较赚钱企业年金个人查询官网
  • 不懂代码如何开始网站程序建设wordpress 获取当前文章标题
  • 网站备案变更建立网站最好的模板
  • 济南微信网站制作电子商务网站建设第一章课后
  • 东莞建工集团企业网站玛沁县wap网站建设公司
  • 泰州网站制作方案定制做网站买完域名还需要什么
  • 建设工程监理网站响应式网站开发案例
  • 淘宝网站维护做网站开发需要的英语水平
  • 南宁公司网站建设惠州网站建设开发团队
  • 网站排名优化电话网站开发实战项目
  • 廊坊购物网站开发设计个人网站设计内容和要求
  • 免费企业建站系统源码长春网站优化方式
  • 房产信息网网址网站优化升级怎么做
  • wordpress网站管理员插件嘉兴网站制作网页
  • 外国黄冈网站推广软件网站如何做流量赚钱
  • 合肥网站建站公司网校网站怎么做
  • 自学建立网站番禺知名网站建设公司
  • 公司网站建设服务费入什么科目菏泽网站建设服务
  • asp.net+h5网站开发网站设计原则
  • 上海做企业网站的公司友情链接网站免费
  • 网站开发的学习最简单的3d动画制作软件
  • 网站认证怎么做网站对固定ip转向怎么做
  • 做网站找顺的个人备案网站可以做商城展示
  • 苏州尚云网站建设wordpress火车头5.0
  • 闵行三中网站网站建设及推广图片
  • 可以做exe的网站上海做app开发公司
  • 做化妆品的网站有哪些推广方式和渠道
  • 网站快速优化排名企业官网怎么做