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

北京工程质量建设协会网站wordpress 简码 文章图片

北京工程质量建设协会网站,wordpress 简码 文章图片,代理招商网免费加盟,嘉兴网站建设定制在C#中#xff0c;delegate#xff08;委托#xff09;和 event#xff08;事件#xff09;是两个非常重要的概念#xff0c;它们主要用于实现回调机制和事件驱动编程。下面详细介绍它们的原理和使用场景。 1. Delegate#xff08;委托#xff09; 1.1 委托的原理 委托…在C#中delegate委托和 event事件是两个非常重要的概念它们主要用于实现回调机制和事件驱动编程。下面详细介绍它们的原理和使用场景。 1. Delegate委托 1.1 委托的原理 委托是一种类型它定义了方法的签名即方法的参数类型和返回类型。 委托可以看作是一个函数指针它允许将方法作为参数传递、存储和调用。 委托是类型安全的编译器会检查委托和方法签名是否匹配。 委托可以绑定到一个或多个方法多播委托。 1.2 委托的声明与使用 声明委托 // 定义一个委托类型它指向一个没有返回值且接受一个string参数的方法 public delegate void MyDelegate(string message); 使用委托 public class Program {// 定义一个符合委托签名的方法public static void DisplayMessage(string message){Console.WriteLine(Message: message);}public static void Main(string[] args){// 创建委托实例并绑定方法MyDelegate myDelegate new MyDelegate(DisplayMessage);// 调用委托myDelegate(Hello, Delegate!);} } 多播委托 委托可以绑定多个方法调用时会依次执行这些方法。 public class Program {public static void DisplayMessage1(string message){Console.WriteLine(Message 1: message);}public static void DisplayMessage2(string message){Console.WriteLine(Message 2: message);}public static void Main(string[] args){MyDelegate myDelegate DisplayMessage1;myDelegate DisplayMessage2; // 绑定第二个方法myDelegate(Hello, Multicast Delegate!);} } 2. Event事件 2.1 事件的原理 事件是基于委托的它是一种特殊的委托用于实现发布-订阅模式。 事件的主要作用是限制委托的访问权限确保外部代码只能订阅或取消订阅-事件而不能直接调用或覆盖事件。 事件通常用于实现观察者模式例如 GUI 编程中的按钮点击事件。 2.2 事件的声明与使用 声明事件 // 定义一个委托类型 public delegate void MyEventHandler(object sender, EventArgs e);// 定义一个包含事件的类 public class Button {// 声明事件public event MyEventHandler Click;// 触发事件的方法public void OnClick(){if (Click ! null) // 检查是否有订阅者{Click(this, EventArgs.Empty); // 触发事件}} } 使用事件 public class Program {public static void Main(string[] args){Button button new Button();// 订阅事件button.Click Button_Click;// 模拟按钮点击button.OnClick();}// 事件处理方法private static void Button_Click(object sender, EventArgs e){Console.WriteLine(Button clicked!);} } 3. 委托与事件的区别 特性    委托 (Delegate)    事件 (Event) 访问权限    可以从外部直接调用或覆盖    只能从声明它的类内部触发 多播支持    支持多播绑定多个方法    支持多播绑定多个事件处理方法 用途    通用回调机制方法传递    实现发布-订阅模式事件驱动编程 安全性    较低外部代码可以随意修改委托    较高外部代码只能订阅或取消订阅事件 4. 使用场景 4.1 委托的使用场景 回调机制将方法作为参数传递给其他方法例如异步编程中的回调。 多播委托需要依次调用多个方法的场景例如日志记录系统。 动态方法调用在运行时决定调用哪个方法。 示例异步编程中的回调 public delegate void AsyncCallback(int result);public class Calculator {public void AddAsync(int a, int b, AsyncCallback callback){Task.Run(() {int result a b;callback(result); // 异步完成后调用回调});} }public class Program {public static void Main(string[] args){Calculator calculator new Calculator();calculator.AddAsync(10, 20, result Console.WriteLine(Result: result));} } 4.2 事件的使用场景 GUI 编程例如按钮点击、鼠标移动等事件。 发布-订阅模式例如消息队列、通知系统。 解耦将事件的触发者和处理者解耦提高代码的可维护性。 示例GUI 中的按钮点击事件 public class Button {public event EventHandler Click;public void OnClick(){Click?.Invoke(this, EventArgs.Empty);} }public class Program {public static void Main(string[] args){Button button new Button();button.Click (sender, e) Console.WriteLine(Button clicked!);button.OnClick();} } 5. 总结 委托用于定义方法签名支持多播适合实现回调机制。 事件基于委托用于实现发布-订阅模式适合解耦和事件驱动编程。 在实际开发中事件是委托的一种高级应用通常用于需要更高安全性和解耦的场景。
http://www.w-s-a.com/news/557333/

相关文章:

  • 建收费网站合肥地区网站制作
  • 自己做头像网站小网站建设公司
  • 电子商务建设与网站规划wordpress linux安装
  • wordpress新手建站win8网站模版
  • 网站的简单布局孝感 商务 网站建设
  • 湖北手机版建站系统价格优化网站内容
  • 网站后台登录不显示验证码软文发布网站
  • 企业微网站建设方案收费的网站如何免费
  • 平昌县建设局网站中国500强企业有哪些
  • 网站开发制作的流程是什么网页打不开显示不安全怎么办
  • 网络网站开发设计安徽建设工程信息网怎么打不开了
  • 百度网站推广申请深圳公众号制作
  • 百度站长怎么做网站维护中国深圳航空公司官网
  • xampp安装网站模板海南一家天涯社区
  • 网站建设 管理系统开发仿租号网站源码网站开发
  • 怎么自己弄网站免费网站设计用什么软件
  • 网站分几种access做网站数据方法
  • 网站默认图片s001网站建设公司
  • 淘宝的电子商务网站的建设东莞哪里有网站制作公司
  • 西安网站制作怎么联系wordpress登陆界面打开慢
  • 高端工作网站网站推广seo代理
  • 一般找素材都是做哪几个网站呢推广引流工具
  • 必须做网站等级保护html网页设计题库
  • 移动端网站开发 float手机在线建网站
  • 教育网站模板下载做汽车网站开题报告的意义
  • 网站首页做后台链接昌平网站制作
  • 营销型门户网站建设浏览器下载免费大全
  • 快三网站开发推广普通话手抄报内容50字
  • 沈阳专业做网站开发公司asp网站搭建教程
  • 网站建设代码福州小程序开发平台