Prev: Sort Error in Crystal Report Code with VS 2005
Next: strange way to subscibe to an event without explicitly usingthe EventHandler
From: Tony Johansson on 2 Feb 2010 04:07 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
From: Tom Shelton on 2 Feb 2010 09:00
On 2010-02-02, Tony Johansson <johansson.andersson(a)telia.com> 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 That is a feature added in the C# 2.0 language - the compiler infers the type of the delegate and does the construction for you. -- Tom Shelton |