C# 事件处理程序问题

标签 c# methods event-handling

关于 C# 中的事件处理程序的简单问题,假设我们有以下代码:

MyObject.MyEventHandler += (...)

我目前正在重构一些代码,并且 (...) 经常被替换为另一个事件处理程序,如下所示:

EventHandler A;

Test()
{    
   A += A_Method;
   MyObject.MyEventHandler += A       
}

忽略“A”并直接写成:

不是更简单吗?
Test()
{    
   MyObject.MyEventHandler += A_Method;       
}

如果我们可以直接将方法从“MyObject”传递给EventHandler对象,那么EventHandler“A”有什么用?

谢谢!

最佳答案

我猜你的意思是

A += A_Method;
MyObject.MyEventHandler += A;

(A_Method 之后不带括号)。如果是这样,假设没有什么比这个例子更复杂的了,A 可能可以安全地省略。重构时,F12(转到定义)是您的 friend :查找所有引用并确保它们都正确地重新路由,等等。

关于C# 事件处理程序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4692813/

相关文章:

c# - 在 CQRS 中注册 EventHandler

c# - PHP 中的 SQL 更新

c# - 如何转换 'MS.Internal.Data.CollectionViewGroupInternal'使用?

java - 如何将类作为参数传递给方法,就好像它是动态变量一样?

java - 从父类(super class)或接口(interface)列表中获取子类实例

c# - ShowDialog 在 WPF 中的处理方式是否与 Winforms 不同?

c# - 另一个类中的 WPF 事件处理程序

c# - 将 ASP.NET Identity 用户链接到用户详细信息表

c# - 在 .net 中的内存数据库中

c++ - 如何安全地将变量的值传递给 C++ 方法,该方法只会将 void* 作为参数?