惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
小众软件
小众软件
Y
Y Combinator Blog
S
SegmentFault 最新的问题
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
L
LangChain Blog
Martin Fowler
Martin Fowler
美团技术团队
B
Blog RSS Feed
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
大猫的无限游戏
大猫的无限游戏
博客园 - 司徒正美
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
The Blog of Author Tim Ferriss
Microsoft Azure Blog
Microsoft Azure Blog
腾讯CDC
Hugging Face - Blog
Hugging Face - Blog
D
Docker
G
Google Developers Blog

博客园 - 生命体验之kevin-Y

windbg内存占用分析常用命令 如何让Trae IDE调用windbg来分析dump文件 Avalonia.Controls.DataGrid自动合并列 asp.net core如何实现Controller热更新 windbg无法分析dotnetframework3.5的dmp asp.net core通过配置决定AddSingleton的实现类 vscode指定python文件的执行程序 golang离线开发-windows-vscode go语言学习 - caddy配置的一些发现 go语言学习 - caddy添加nacos-gateway 学习jsp-使用IDEA2024社区版 ravendb源代码学习一:服务启动 修整程序集需要 .NET Core 3.0 或更高版本。 打开电脑后一直弹出“交互式检测服务”窗口 Idea2024-java-Maven开发配置 java.util.zip.DataFormatException: incorrect header check Build Secure Web Services With SOAP Headers and Extensions “System.Net.Http.HttpContent”不包含“ReadAsAsync”的定义 C#入门:如何合理制定方法参数-下 C#入门:如何合理制定方法参数-上 拷贝对象的开源工具类-FastMapper-TinyMapper-Mapster
C#获取事件绑定的方法
生命体验之kevin-Y · 2024-04-22 · via 博客园 - 生命体验之kevin-Y
public class MyEventArgs
{
}
public delegate void MyEventHandler(object sender,MyEventArgs args);
public
class MyControlClass:Control { public event MyEventHandler MyEvent; public Delegate[] GetEventDelegates() { if(MyEvent!=null) return MyEvent.GetInvocationList(); else return null; } }

在类中直接使用event的GetInvocationList方法即可。那能否我们自己的判断执行某一个绑定的方法呢?

Delegate current = delegates[i];
//..判断current.Method各个属性,如果调用
current.Method.Invoke(current.Target,new object[] { this,args } );

可能有人会问,为什么MyControlClass需要继承自Control,从本例子来说这不是必须的。但事件还是建议更多在界面控件上使用。

又或者说事件适合于两个线程的业务是比较分隔的对象。就是说事件内各个绑定的方法内的代码应该是一个比较完整逻辑代码。

对于复杂业务,某些人可能会使用事件绑定来影响主业务流程。但我建议直接调用不同逻辑类的方法。我们可以通用方法名与其参数,大概知道方法做了什么。而事件则完全隐藏了工作的内容,这不利于快速阅读和快速了解业务全貌。