c# - 从事件中删除空处理程序有任何副作用吗?

标签 c# .net

删除处理程序之前我想知道

OnEvent -= 处理程序;

我们是否需要确定处理程序是否为空。 handler为null时,有什么不好的影响吗?

最佳答案

不,如果 handler 为 null,则它是空操作...或者至少,如果它是对 Delegate.Remove 的简单调用,则它是空操作,其中包含的文档包括:

Returns source if value is null or if the invocation list of value is not found within the invocation list of source.

现在一个实际的事件只有一个有效的“删除”方法...并且可以做它想做的任何事情。这将是一个实现不佳的事件,但在传递 null 处理程序时会产生不良影响,因为 null 在委托(delegate)术语中实际上意味着“空调用列表”。

关于c# - 从事件中删除空处理程序有任何副作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4968047/

相关文章:

.net - 如何在 C# 中以编程方式备份​​ SQL 数据库

c# - 为什么我需要成为管理员才能读取 .NET CLR 内存性能计数器

c# - 按多列对 C# 中的锯齿状数组进行排序

c# - 将 List<IInfrastructureEntity> 转换为 List<TEntity>,其中泛型类型 TEntity 必须实现该接口(interface)

c# - VB.NET 人员在 C# 中的运算符重载

c# - 删除非 ASCII 字符(使用 Microsoft.Office.Interop.Excel)

c# - 有多少个时区?

c# - .NET Selenium NoSuchElementException; WebDriverWait.Until() 不起作用

c# - 使用 Entity Framework 添加具有读/写操作和 View 的 Controller 会导致警告

c# - 如何将 ping 变量转换为 int?