I don't understand the dual syntax of event delegate
<p>In answer to my other question <a href="http://stackoverflow.com/questions/4379627/how-to-send-custom-event-message-just-after-control-instantiation">How to send custom event message just after control instantiation ?</a> I read this:</p>

<pre><code>if (ValueChanged != null)
{
   ValueChanged(sender, e);
}
</code></pre>

<p>What is ValueChanged in the first case ? Not a function as in the second instruction ? How can the same symbol be used for both ... and function ?</p>

<p>uPDATE after james's answer: if ValueChanged is an Object, How can I call it as if it were a Method? Is it a syntactic sugar or alien syntax with some mysterious mechanism behind like calling ValueChanged.Invoke(sender, e); ?</p>
