<p>In C#, what is the difference (if any) between these two lines of code?</p>

<pre><code>tmrMain.Elapsed += new ElapsedEventHandler(tmrMain_Tick);
</code></pre>

<p>and</p>

<pre><code>tmrMain.Elapsed += tmrMain_Tick;
</code></pre>

<p>Both appear to work exactly the same. Does C# just assume you mean the former when you type the latter?</p>

I did this
```
```
static void Hook1()
{
    someEvent += new EventHandler( Program_someEvent );
}

static void Hook2()
{
    someEvent += Program_someEvent;
}
```
```
And then ran ildasm over the code.
The generated MSIL was exactly the same.
So to answer your question, yes they are the same thing.
The compiler is just inferring that you want
```
someEvent += new EventHandler( Program_someEvent );
```
-- You can see it creating the new
```
EventHandler
```
object in both cases in the MSIL