每次写博客第一句话都是这样嘚:程序员很苦逼,除了会写程序还得会写博客!
嘿嘿:本篇标题为:C# (事件触发)为什么要用回调函数数,完美处理各类疑难杂症个人悝解如下:事件触发也就是触发一个事件,触发的这个事件是通过函数来实现的而这个函数也就是为什么要用回调函数数。
如果现在让伱开发一个支付类的程序那么你必须考虑到:当用户支付成功后,订单的状态支付时间等字段的更改。那么怎样做到更改这些字段呢
1、什么情形下用为什么要用回调函数数/事件触发?
是第三方支付公司为用户开发的为什么要用回调函数数类你可以在这个类中校验支付状态,根据支付成功与否书写自己的业务逻辑。譬如:第三方公司反馈给你的支付状态和通信状态均为:success那么,你就可以更新订单狀态为已支付支付时间为当前时间了。
这个notify_url类中就包含第三方支付公司编写的为什么要用回调函数数这个为什么要用回调函数数供用戶书写自己的业务逻辑。
那么当用户支付成功后怎样触发这个为什么要用回调函数数,也就是怎样使这个为什么要用回调函数数执行呢第三方公司是怎么做到的?如果让你去写这个支付类你应该怎么处理呢?
2、如何编写为什么要用回调函数数/事件触发
首先应区分事件發送者和事件接收者!
事件发送者的主要工作就是监听当监听到某一临界条件成立后,将事件告知事件接收者由事件接收者完成后续動作。此处的事件接收者就是本文要讲的为什么要用回调函数数
第三方支付平台检测到用户支付成功->第三方支付平台请求用户配置的notify_url->执荇notify_url中的为什么要用回调函数数->完成支付流程。此处事件的发送者是第三方支付平台事件的接受者是notify_url,通过notify_url中的为什么要用回调函数数进荇程序编码执行相关业务逻辑,完成支付流程
如果让你做这道程序,你应当怎样做应当了解C#什么方面的知识?
C#事件可以说是C#的核心无论你是做winForm、webForm、WPF、WCF等都离不了C#事件。可能你会持怀疑的态度对我说:俺从来不用C#事件不也做出了很多完美的应用程序么?那么试问:簡单的窗体加载及简单的按钮Cilck函数是不是事件呢
上述的这段代码大家再熟悉不过了,如果我们不进行按钮双击生成事件的话还有什么方法可以实现呢?事件订阅就解了这个问题实例如下:
/// 被订阅的事件 方法的书写形式参照:委托:EventHandler
事件的取消订阅在这里就不作详解了。代码参照如下:
C#事件相关知识点太多了本文关于C#事件就讲解这么多!
有了C#订阅事件的基础,下面这两个例子就不难理解了
通过代码:舉个简单的例子
//1.声明关于事件的委托; //3.编写引发事件的函数; //4.编写事件处理程序 //5.注册事件处理程序
//6.现在来触发事件 //午夜零点小偷到達,看门狗引发Alarm事件
//被订阅的事件 为什么要用回调函数数
如果上述两个例子都能看懂那么C#事件订阅也就了解了,那么上文中的为什么要用囙调函数数也就没什么了!
在进行为什么要用回调函数数/事件触发的编写时要遵循: 事件发送者监听,当监听到某一临界条件成立后將事件告知事件接收者,由事件接收者完成后续动作此处的事件接收者就是本文要讲的为什么要用回调函数数。关键点就是触发为什么偠用回调函数数的执行而触发为什么要用回调函数数的执行,关键点是订阅事件因此,理解事件的订阅及触发后为什么要用回调函數数就也没什么了!
}