Prev: strange way to subscibe to an event without explicitly using the EventHandler
Next: Properties.Settings.Default.Reload don't work
From: Göran Andersson on 2 Feb 2010 07:39 Tony Johansson wrote: > Hi! > > Below is a snippet of a class Test > Normally when you use events and want to subscribe to an event you use > statement like this > timer.Tick += new EventHandler(t_Tick); > In the class below you can subscribe to an event by writing this statement > timer.Tick += t_Tick; > instead and skip the delegate EventHandler and it works and I'm very > surprised. > > So can somebody explain why it't possible to subscribe to an event by using > this statement > timer.Tick += t_Tick; > > public partial class Test : Form > { > private Timer timer; > > public Test() > { > timer = new Timer(); > timer.Interval = 1000; > //timer.Tick += new EventHandler(t_Tick); > timer.Tick += t_Tick; > timer.Start(); > } > > void t_Tick(object sender, EventArgs e) > { > //some code here > } > > //Tony > Because the compiler adds the construction of the EventHandler when you add a delegate to an event. It's just a shortcut, the generated code is the same. -- G�ran Andersson _____ http://www.guffa.com |