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

导航网站制作推广营销app

导航网站制作,推广营销app,注册自媒体账号平台,rails网站开发在C#中,委托(Delegate)和事件(Event)是两个重要的概念,它们通常用于实现事件驱动编程和回调机制。 委托定义: 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个…

在这里插入图片描述

在C#中,委托(Delegate)和事件(Event)是两个重要的概念,它们通常用于实现事件驱动编程和回调机制。

委托定义:

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

委托是一个安全的函数指针,.NET中的委托是类型安全的,委托会检测它所保存的函数引用是否和声明的委托匹配。

委托种类:3种

Delegate至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型

Func可以接受0个至16个传入参数,必须具有返回值

Action可以接受0个至16个传入参数,无返回值

代码示例:
1.Delegate 类型:

using System;// 定义委托
public delegate void MyDelegate(string message);// 使用委托
public class DelegateExample
{public void ShowMessage(string message){Console.WriteLine("Message: " + message);}public static void Main(){// 实例化委托并绑定方法MyDelegate myDelegate = new MyDelegate(new DelegateExample().ShowMessage);// 调用委托myDelegate("Hello, World!");}
}

2. Func 泛型委托:
Func 委托是一个带有返回值的泛型委托,可以接受多个参数。

using System;public class FuncExample
{public static void Main(){// 使用Func委托Func<int, int, int> add = (a, b) => a + b;// 调用Func委托int result = add(5, 10);Console.WriteLine("Result: " + result);}
}

3. Action 泛型委托:
Action 委托是一个不带返回值的泛型委托,也可以接受多个参数。

using System;public class ActionExample
{public static void Main(){// 使用Action委托Action<string> printMessage = (message) => Console.WriteLine("Message: " + message);// 调用Action委托printMessage("Hello, Action!");}
}

事件(Event):

功能作用:

事件是一种特殊的委托,用于实现发布-订阅模式,允许对象在特定的情况下通知其他对象。
主要用于实现回调函数、处理用户界面交互等。

// 定义事件委托
public delegate void MyEventHandler(object sender, EventArgs e);// 定义包含事件的类
public class MyEventClass
{public event MyEventHandler MyEvent;// 触发事件的方法public void RaiseEvent(){MyEvent?.Invoke(this, EventArgs.Empty);}
}// 订阅事件的方法
public class EventSubscriber
{public void HandleEvent(object sender, EventArgs e){Console.WriteLine("Event handled by EventSubscriber");}
}// 使用事件
MyEventClass myObject = new MyEventClass();
EventSubscriber subscriber = new EventSubscriber();// 订阅事件
myObject.MyEvent += subscriber.HandleEvent;// 触发事件
myObject.RaiseEvent();

可以参考博主之前写的订阅器,在项目中的使用:
https://blog.csdn.net/zuiyuewentian/article/details/135043706

相同点:

  • 都基于委托: 事件本质上是一种特殊的委托,事件声明和使用都依赖于委托类型。
  • 都支持多播: 委托和事件都支持多个方法的绑定,可以同时调用多个方法。

不同点:

  • 语法和用途: 委托用于直接调用方法或实现回调,而事件更多用于实现发布-订阅模式,让对象在状态改变时通知其他对象。
  • 封装性: 事件具有更高的封装性,外部类不能直接调用触发事件的方法,而委托没有这种封装性。
  • 事件在类中声明,委托可在任何地方声明和使用。
http://www.yidumall.com/news/21297.html

相关文章:

  • 广州网站制作系统经典品牌推广文案
  • 普通银行卡可以做国外网站购物信用卡使用吗google网页搜索
  • 二手网站建设情况进入百度app查看
  • 网站建设费用账务处理百度指数三个功能模块
  • 东营网站建设哪家好四川网络推广seo
  • 网站快照怎么更新什么搜索引擎搜索最全
  • 广西网站建设定制一个完整的营销策划方案范文
  • 一站式企业服务网站推广计划方法
  • 做网站的主流软件软文什么意思
  • 湛江新闻头条最新消息搜索引擎优化哪些方面
  • 网站设计与wap网站开发技术推广引流方法有哪些?
  • 网站tag聚合怎么做百度数据研究中心官网
  • 涉县住房和城乡规划建设局网站什么软件可以搜索关键词精准
  • 跨境独立网站怎么建设百度搜索引擎网址格式
  • 集团公司做网站网络营销的优势与不足
  • 私人网站免费观看微信上如何投放广告
  • wordpress 函数 应用百度seo排名优化公司
  • 绍兴高端网站设计站长工具seo综合
  • 58同城新密网站建设企业内训课程
  • 公司注册资金最少是多少seo门户网
  • 中国菲律宾关系为什么不好郑州seo线上推广系统
  • 兼职做网站设计微博营销推广策划方案
  • wordpress转换小程序seo外包公司怎么样
  • 用户体验 网站谷歌搜索广告优化
  • 温州专业微网站制作公司哪家好东莞网站seo优化托管
  • 惠州 家具 网站上线适合女生去的培训机构
  • 做的好的网站着陆页seo去哪学
  • 网站建设yingkagou深圳百度推广联系方式
  • 视频网站做app开发的北京计算机培训机构前十名
  • 安溪哪里有学做网站西安seo公司