andrewducker: (Default)
andrewducker ([personal profile] andrewducker) wrote2005-02-25 06:53 pm

How I spent my Friday afternoon at work

I've just been moved to a new bit of the team, where I will be working in C# - despite the fact I've never been trained in it. I have, luckily, done some at home, in my own time, but bits of it have been known to make my head hurt. In attempt to refresh my memory I threw myself into the one thing that I never really got the hang of - events and delegates.

Delegates replace function pointers, and make them strongly typed (so rather than passing in a function pointer to a callback you pass in a delegate, which contains the function pointer and the type information about that function).

So in order to raise an event that passes a string from the event raiser to the event subscriber I've had to:

1) Declare a Delegate with String parameter called StringDelegate
public delegate void StringDelegate (String MessageString);

2) Declare an Event of type StringDelegate
public event StringDelegate StringEvent;

3) Create a method which takes a String parameter
public void AndyTest( String MessageToPrint )
{
MessageBox.Show( MessageToPrint,"Another Message Box");
}

4) Subscribe the method to the event, using the delegate.
StringEvent += new StringDelegate(AndyTest);

5) Create a method which raises the event
protected virtual void OnStringEvent(String EventMessage)
{
StringEvent(EventMessage);
}

6) Create some code which actually calls the code-raising method
OnStringEvent("Andy");

All of which has made my head hurt a fair bit. On the plus side, that final line _did_ make a message box pop up with the word "Andy" in it, so it's not all bad.
I'm sure the last two bits can be combined in some way, but I left work at that point, it being 5:45
moniqueleigh: Me after my latest haircut. Pic by <lj site="livejournal.com" user="seabat"> (c) 03/2008 (Default)

[personal profile] moniqueleigh 2005-02-26 02:06 am (UTC)(link)
Really? There's proof of this? And people say I'm just too fickle to be bored after "only" 3 1/2 years at the same job. Hrmph. But yes -- I'm boooooooooooooooored there.