关于C#中的EventHandlers的快速问题,假设我们有以下代码:
MyObject.MyEventHandler += (...)
我目前正在重构一些代码,并且(...)经常被另一个事件处理程序替换,如下:
EventHandler A;
Test()
{
A += A_Method;
MyObject.MyEventHandler += A
}
忽视“A”而不是简单地写下来是不是更简单:
Test()
{
MyObject.MyEventHandler += A_Method;
}
如果我们可以直接将方法从“MyObject”传递给EventHandler对象,那么EventHandler“A”的用途是什么?
谢谢!
答案 0 :(得分:2)
当然,只要A
不在其他地方使用。否则,它可能是一种减少代码重复的重构。
答案 1 :(得分:2)
我认为你的意思是
A += A_Method;
MyObject.MyEventHandler += A;
(A_Method后没有括号)。如果是这样,假设没有比示例更复杂的内容,A
可能会被安全地省略。在重构时,F12(转到定义)是你的朋友:查找所有引用并确保它们都被正确地重新路由等。