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

今天重大国际新闻seo建站

今天重大国际新闻,seo建站,哪有做网站推广,举报网站建设自查报告概述事件属于委托的一个子集#xff0c;像我们平时界面上的鼠标点击按钮后响应事件、事件的发布和订阅等都需要用到委托.通过委托可以很好的实现类之间的解耦好。事件委托EventHandler的函数原型如下#xff1a;delegate 表示这个个委托#xff0c;事件委托没有返回值#…概述     事件属于委托的一个子集像我们平时界面上的鼠标点击按钮后响应事件、事件的发布和订阅等都需要用到委托.通过委托可以很好的实现类之间的解耦好。事件委托EventHandler的函数原型如下delegate 表示这个个委托事件委托没有返回值有两个入参sender是事件触发的对象e是一个泛型的事件类型参数public delegate void EventHandlerTEventArgs(object sender, TEventArgs e);用法举例用法举例1窗体关闭事件public void Cancel(object obj, bool e){if (e){sw.AppendLine(try clsoe window);}else{sw.AppendLine(clsoe window is cancel);}}//事件委托1事件是委托的子集EventHandlerbool windowTryClose Cancel;windowTryClose(this, false);这里在定义了一个委托EventHandlerbool将方法Cancel委托给他然后嗲用委托执行。注意EventHandlerbool windowTryClose Cancel;是 EventHandlerbool windowTryClose new EventHandlerbool(Cancel);的简写传入的参数是false所以运行结果clsoe window is cancel用法举例2 按钮点击事件//事件委托2Button button new Button();button.ClickEvent Button_Click;button.ClickAction();public void Button_Click(Object sender, EventArgs args){sw.AppendLine(这是按钮点击事件);}public class Button{public EventHandler ClickEvent;public void ClickAction(){ClickEvent.Invoke(this, new EventArgs());}}这里主要是写了按钮点击事件的一个委托一般在定义事件委托时前面可以用event去修饰我这里省略了用法举例3 事件发布与订阅//事件委托3var myPublishEventArgs new PublishEvent();_ new SubscribeEvent(myPublishEventArgs);myPublishEventArgs.Publish();public class MyPublishEventArgs : EventArgs{public string InfoString { get; set; }}public class PublishEvent{public event EventHandlerMyPublishEventArgs OnPublish;public void Publish(){OnPublish?.Invoke(this, new MyPublishEventArgs() { InfoString hello });}}public class SubscribeEvent{public SubscribeEvent(PublishEvent publishEvent){publishEvent.OnPublish Subscribe;}public void Subscribe(Object sender, MyPublishEventArgs args){MessageBox.Show($我接收到的消息是:{args.InfoString});}}这里封装了几个类MyPublishEventArgs是我要发送的事件MyPublishEventArgs这个类是发布者SubscribeEvent这个是订阅者主要订阅事件一定要放在发布前这样才能成功接收到事件.委托部分这里就讲解完事了全部源码如下using PropertyChanged; using System; using System.Text; using System.Threading; using System.Windows;namespace Caliburn.Micro.Hello.ViewModels {[AddINotifyPropertyChangedInterface]public class DelegateViewModel : Screen,IViewModel{public string ResultString { get; set; }delegate int DelegateM(string a, string b);//声明,可以有返回值也可以没有StringBuilder sw new StringBuilder();public DelegateViewModel(){DisplayName DelegateTest;}public void Test(){sw.AppendLine($【Delegate测试】执行线程id:{Thread.CurrentThread.ManagedThreadId});//func用法1//Funcstring, string, int func new Funcstring, string, int(p.StringAddA);Funcstring, string, int func StringAddA;//简写var result func.Invoke(3, 5);//可以简化为func(3, 5)sw.AppendLine($【func用法1】func返回结果是:{result});//func用法2用lamda表达式简化写法,通过注册实现多播委托func (a, b) {return int.Parse(a) - int.Parse(b);};sw.AppendLine($【func用法2】func返回结果是:{func(3, 5)});//Action用法//Actionstring, string action new Actionstring, string(p.StringAddB);Actionstring, string action StringAddB;//简写IAsyncResult asyncResult action.BeginInvoke(3, 5, null, null);//action(3, 5),BeginInvoke异步执行即开启新现成处理StringAddBaction.EndInvoke(asyncResult);//阻塞委托直到执行完成if (asyncResult.IsCompleted){sw.AppendLine($【Action用法】当前异步委托线程已执行完成);}Test(func, action);//将方法委托后转化为参数进行传递//delegate用法//DelegateM delegateM new DelegateM(p.StringAddA);DelegateM delegateM StringAddA;//简写sw.AppendLine($【delegate用法】delegate返回结果是:{delegateM(3, 5)});//事件委托1事件是委托的子集EventHandlerbool windowTryClose new EventHandlerbool(Cancel);windowTryClose(this, false);//事件委托2Button button new Button();button.ClickEvent Button_Click;button.ClickAction();//事件委托3var myPublishEventArgs new PublishEvent();_ new SubscribeEvent(myPublishEventArgs);myPublishEventArgs.Publish();ResultString sw.ToString();}public int StringAddA(string a, string b){return int.Parse(a) int.Parse(b);}public void StringAddB(string a, string b){sw.AppendLine($【Action用法】Action执行线程id:{Thread.CurrentThread.ManagedThreadId});sw.AppendLine($【Action用法】Action执行结果:{(int.Parse(a) int.Parse(b))});}public void Test(Funcstring, string, int f, Actionstring, string a){a.Invoke(f.Invoke(3, 5).ToString(), 5);}public void Cancel(object obj, bool e){if (e){sw.AppendLine(try clsoe window);}else{sw.AppendLine(clsoe window is cancel);}}public void Button_Click(Object sender, EventArgs args){sw.AppendLine(这是按钮点击事件);}public void MyEvent(Object sender, EventArgs args){sw.AppendLine(这是按钮点击事件);}}public class Button{public EventHandler ClickEvent;public void ClickAction(){ClickEvent.Invoke(this, new EventArgs());}}public class MyPublishEventArgs : EventArgs{public string InfoString { get; set; }}public class PublishEvent{public event EventHandlerMyPublishEventArgs OnPublish;public void Publish(){OnPublish?.Invoke(this, new MyPublishEventArgs() { InfoString hello });}}public class SubscribeEvent{public SubscribeEvent(PublishEvent publishEvent){publishEvent.OnPublish Subscribe;}public void Subscribe(Object sender, MyPublishEventArgs args){MessageBox.Show($我接收到的消息是:{args.InfoString});}} }运行结果
http://www.zqtcl.cn/news/466775/

相关文章:

  • 如何建设论坛网站营销宣传策划方案
  • 企业网站推广排名技术网
  • 网站建设网页设计培训学校延边网站建设
  • 自己做网站需要的技术个人简历表格下载
  • 做网站建设小程序ukidc做电影网站
  • 网站内容分析软文范例100字
  • 网站建站策划用vs做网站
  • 如何建自己的网站做农村电子商务的网站有哪些内容
  • 手机销售网站设计怎么推广软件让别人下载
  • 贵州三蒲建设工程有限公司网站莱阳网站制作
  • 外贸买家网站适合初学者模仿的网站
  • 安徽蚌埠怀远县建设局网站米卓网站建设
  • 网站框架怎么建设微信旧版本下载
  • 速贝网站友情链接怎么做企业网站开发的设计流程
  • 网站建设 安庆网站开发免责合同
  • 天津深圳网站开发定制网络工程考研方向
  • 做app网站的公司哪家好济南网站建设市场
  • 自己做网站页面网站国内空间和国外空间
  • 桂城网站制作公司asp.net jsp 网站
  • 太原免费静态网页制作网站如何搭建钓鱼网站
  • 英语门户网站织梦源码修改wordpress登录页面
  • 网络建设和网站建设网站快速收录提交
  • 免费的建设网站软件北京电力交易中心谢开
  • 建设一个网站需要提供什么手续好看的美食网站设计
  • 西宁网站seo公司网站建设和维护释义
  • 建站平台有哪些免费一键搭建网站wordpress ent 主题
  • 国内比较大的源码网站营销型网站与普通网站的区别
  • 眼镜企业网站建设方案广州最新新闻
  • 茶业网站设计方案绍兴网站建设方案托管
  • 怎样免费建设网站网站建设规划书txt微盘