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

海外转运网站建设c2c的典型代表有哪些

海外转运网站建设,c2c的典型代表有哪些,网页界面,中小企业网站建设案例目录 一、委托的发布和订阅 1.订阅操作符号“和取消订阅操作符号“-” 2.示例源码 二、事件的发布和订阅 三、EventHandler类 四、Windows事件 C#中的事件是指某个类的对象在运行过程中遇到的一些特定事情#xff0c;而这些特定的事情有必要通知给这个对象的使用者…目录 一、委托的发布和订阅 1.订阅操作符号“和取消订阅操作符号“-” 2.示例源码 二、事件的发布和订阅 三、EventHandler类 四、Windows事件 C#中的事件是指某个类的对象在运行过程中遇到的一些特定事情而这些特定的事情有必要通知给这个对象的使用者。当发生与某个对象相关的事件时类会使用事件将这一对象通知给用户这种通知即称为“引发事件”。引发事件的对象称为事件的源或发送者。 一、委托的发布和订阅 由于委托能够引用方法而且能够链接和删除其他委托对象因而就能够通过委托来实现事件的“发布和订阅”。 通过委托来实现事件处理的过程通常需要以下4个步骤 • 定义委托类型并在发布者类中定义一个该类型的公有成员。 • 在订阅者类中定义委托处理方法。 • 订阅者对象将其事件处理方法链接到发布者对象的委托成员一个委托类型的引用上。 • 发布者对象在特定的情况下“激发”委托操作从而自动调用订阅者对象的委托处理方法。 1.订阅操作符号“和取消订阅操作符号“-” “”在这里不是逻辑运算符而是用于指定响应事件时要调用的方法。这类方法称为事件处理程序叫 注册/订阅事件用在操作类名后。 //订阅符号 public static void SubscribeToRing(SchoolRing schoolRing) {schoolRing.OnBellSound SchoolJow; } 与之相反功能的“-”就是取消订阅、退订操作符。 //取消订阅操作符“-” public static void CancelSubscribe(SchoolRing schoolRing)   {schoolRing.OnBellSound - SchoolJow; } 2.示例源码 // 委托的发布和订阅事件namespace Demo {class Program{static void Main(string[] args){SchoolRing sr new(); //创建学校铃声类的对象Students.SubscribeToRing(sr); //订阅铃声Console.Write(请输入打铃参数1表示打上课铃2表示打下课铃);sr.Jow(Convert.ToInt32(Console.ReadLine())); //打铃动作Console.ReadLine();}}public delegate void RingEvent(int ringKind); //声明一个委托类型/// summary/// 定义铃声类SchoolRing/// 类中发布一个委托定义函数Jow/// /summarypublic class SchoolRing{public RingEvent? OnBellSound; //委托发布就好像定义一个实例对象public void Jow(int ringKind) //定义一个公有成员Jow()打铃{if (ringKind 1 || ringKind 2){Console.Write(ringKind 1 ? 上课铃声响了 : 下课铃声响了);if (OnBellSound ! null) //不等于空说明它已经订阅了具体的方法即它已经引用了具体的方法{OnBellSound!(ringKind); //回调OnBellSound委托所订阅或引用的具体方法}}else{Console.WriteLine(这个铃声参数不正确);}}}/// summary/// 定义学生类Students/// 类中定义三个函数/// /summarypublic class Students{public static void SubscribeToRing(SchoolRing schoolRing) //学生们订阅铃声这个委托事件{schoolRing.OnBellSound SchoolJow;}public static void SchoolJow(int ringKind){if (ringKind 2) //打了下课铃{Console.WriteLine(同学们开始课间休息);}else if (ringKind 1) //打了上课铃{Console.WriteLine(同学们开始认真学习);}}public static void CancelSubscribe(SchoolRing schoolRing) //取消订阅铃声动作{schoolRing.OnBellSound - SchoolJow;}} }二、事件的发布和订阅 事件是一种特殊的类型发布者在发布一个事件之后订阅者对它只能进行自身的订阅或取消而不能干涉其他订阅者。 事件是类的一种特殊成员即使是公有事件除了其所属类型之外其他类型只能对其进行订阅或取消别的任何操作都是不允许的因此事件具有特殊的封装性。和一般委托成员不同某个类型的事件只能由自身触发。 使用事件的目的是解决安全隐患和不能干涉其他订阅者。事件的使用方法C#提供了专门的事件处理机制以保证事件订阅的可靠性其做法是在发布委托的定义中加上event关键字其他代码不变。 //事件的使用方法 public event RingEvent OnBellSound; //事件发布//不安全的事件订阅当不使用event关键字时系统会会忽视威胁的存在 //当使用event关键字修饰时系统会报错 schoolRing.OnBellSound SchoolJow; //系统会报错的应使用 schoolRing.OnBellSound null; //系统会报错的禁止指向null schoolRing.OnBellSound2 SchoolJow; //系统会报错的事件只能由自身触发 三、EventHandler类 在事件发布和订阅的过程中定义事件的类型即委托类型是一件重复性的工作为此.NET类库中定义了一个EventHandler委托类型并建议尽量使用该类型作为事件的委托类型。该委托类型的定义为 public delegate void EventHandler(object sender,EventArgs e); 其中 object类型的参数sender表示引发事件的对象由于事件成员只能由类型本身即事件的发布者触发因此在触发时传递给该参数的值通常为this。例如可将SchoolRing类的OnBellSound事件定义为EventHandler委托类型那么触发该事件的代码就是“OnBellSound(this,null);”。 EventHandler委托的第二个参数e表示事件中包含的数据。如果发布者还要向订阅者传递额外的事件数据那么就需要定义EventArgs类型的派生类。 // EventHandler类 namespace _09_1 {class Program{/// summary/// 操作流程创建发布者实例→订阅该实例→发布者开始发布/// /summarystatic void Main(string[] args){SchoolRing sr new(); //创建学校铃声类的对象Students.SubscribeToRing(sr); //订阅铃声Console.Write(请输入打铃参数1表示打上课铃2表示打下课铃);sr.Jow(Convert.ToInt32(Console.ReadLine())); //发布者触发打铃动作事件只能由发布者触发Console.ReadLine();}}public delegate void RingEvent(int ringKind); //声明一个委托类型/// summary/// 发布者/// 校铃种类及对应的处理方法/// 定义铃声类SchoolRing类中发布一个委托定义函数Jow方法/// /summarypublic class SchoolRing{public event EventHandler? OnBellSound; //委托发布就好像定义一个实例对象public void Jow(int ringKind) //定义一个公有成员Jow()打铃方法{if (ringKind 1 || ringKind 2){Console.Write(ringKind 1 ? 上课铃声响了 : 下课铃声响了);if (OnBellSound ! null) //不等于空说明它已经订阅了具体的方法即它已经引用了具体的方法{ //为了安全事件成员只能由类型本身触发(this),OnBellSound!(this, new Students.RingEventArgs(ringKind));}}else{Console.WriteLine(这个铃声参数不正确);}}}/// summary/// 订阅者/// 定义学生类Students/// 类中定义三个函数订阅、订阅方法、取消订阅/// /summarypublic class Students{/// summary/// 订阅/// /summarypublic static void SubscribeToRing(SchoolRing schoolRing) //学生们订阅铃声这个委托事件{schoolRing.OnBellSound SchoolJow;}/// summary/// EventHandler委托的第二个参数e表示事件中包含的数据。/// /summary/// param namesender/// 事件的订阅者可以通过sender参数来了解是哪个对象触发的事件这里当然是事件的发布者/// 不过在访问对象时通常要进行强制类型转换/// /param/// param namee/parampublic static void SchoolJow(object? sender, EventArgs e){if (((RingEventArgs)e).RingKind 2) //下课铃e强制转化内RingEventArgs类型{Console.WriteLine(同学们开始课间休息);}else if (((RingEventArgs)e).RingKind 1) //上课铃e强制转化内RingEventArgs类型{Console.WriteLine(同学们开始认真学习);}}/// summary/// 取消订阅/// /summary/// param nameschoolRing/parampublic static void CancelSubscribe(SchoolRing schoolRing){schoolRing.OnBellSound - SchoolJow;}/// summary/// EventArgs类型的派生类/// 如果发布者还要向订阅者传递额外的事件数据那么就需要定义EventArgs类型的派生类。/// 例如由于需要把打铃参数1或2传入事件中则可以定义如下的RingEventArgs类/// /summary/// param nameringKind/// 铃声参数/// /parampublic class RingEventArgs(int ringKind) : EventArgs{//描述铃声种类的字段private readonly int ringKind ringKind;//获取打铃参数public int RingKind {get { return ringKind; }}}} } 四、Windows事件 事件在Windows这样的图形界面程序中有着极其广泛的应用事件响应是程序与用户交互的基础。用户的绝大多数操作都可以触发相关的控件事件。关于此类事件详见作者发布的有关Windows窗体应用的文章此处省略十万字。
http://www.eeditor.cn/news/123094/

相关文章:

  • wordpress三站合一好用的企业邮箱
  • 计算机专业哪个专业比较好就业网站优化哪个公司好
  • 免费电视剧大全网站以下哪个选项不属于网络营销的特点
  • 七台河网站制作ps6做网站点哪里保存
  • 现在做个网站多少钱深圳 网站建设 公司
  • 官方网站的作用c 网站建设报告
  • 上海专业网站建设公司帝国cms漏洞
  • 海拉尔北京网站建设人事外包公司
  • 专业设计企业网站wordpress宽屏
  • 建筑焊工证查询网站官方网手机软件app开发
  • 企业网站如何做网警备案做任务的电脑网站
  • 图库素材网站模板丽水网站建设哪家好
  • seo助力网站转化率提升物流网络图
  • html网站地图生成php企业网站
  • 网站建设的需求方案品牌宣传推广文案
  • p2p种子网站建设建设网站用动态ip还是静态ip
  • html网站设计实验报告wordpress鼠标滑过几何线条
  • 做网站推广利润哪个国家的绘本网站做的好
  • 网站直接访问建设部网站法律法规
  • 做铝材的网站农业电商网站有哪些
  • 100款免费软件网站大全wordpress如何做页面模板下载地址
  • 品牌网站怎么建立自己怎么建设手机网站
  • 怎样做网站手机客户端帮别人起名 做ppt的网站
  • 网站模板 整站源码友谊平台
  • 寻找扬中网站建设wordpress不显示作者评论
  • 好的培训网站模板wordpress pot文件
  • 做网站小代码大全自助网站建设公司电话
  • 诸暨北京有哪些网站制作公司列表网网站建设
  • 我做的网站怎样被百度收录微信开发一个小程序多少钱
  • 什么行业必须做网站郑州网站建设 天强科技