C# why shall I use “new” keyword when subscribing for an event?

前端 未结 4 1674
长情又很酷
长情又很酷 2021-01-14 01:23

What is the difference between following 2 ways of subscribing for an event?

receiver.ConfigChanged += Config_ConfigChanged;

receiver.ConfigChanged += new E         


        
4条回答
  •  清歌不尽
    2021-01-14 01:59

    Ok so

    receiver.ConfigChanged -= Config_ConfigChanged;
    

    will clear out all event handlers that refer to that method.

    var eventHandler = new EventHandler(Config_ConfigChanged); 
    
    receiver.ConfigChanged += eventHandler;
    receiver.ConfigChanged += new EventHandler(Config_ConfigChanged); 
    
    receiver -= eventHandler;
    

    will only clear out the one eventHandler.

    You use the verbose way if you don't care about tracking the handler.

提交回复
热议问题