It just goes to show that there are always little surprises waiting around the corner. I've been looking at least casually at .Net 2.0 since Beta 2, and I even read through the "What's New" for C# 2.0 to see if I missed anything. Somehow I managed not to notice Implicit Delegate Assignment (or at least that's what I'm calling it).
It is now possible to assign a delegate using just the Class and Method name...you no longer have to create a new instance of the delegate type. Not a huge thing, I know, but for those of us who are easily impressed it's, well, impressive.
Here's the skinny in code language:
public class SomeClass
{
public event EventHandler MyEvent;
}
public class SomeOtherClass
{
SomeClass _class;
public SomeOtherClass()
{
_class = new SomeClass();
// Old Way
_class.MyEvent += new EventHandler(this.MyHandler);
// New Way
_class.MyEvent += this.MyHandler;
}
public void EventHandler(object sender, EventArgs args)
{
// Handler Code
}
}