public static void InvokeDelegate3() { GeneralExampleClass generalExampleClass = new GeneralExampleClass("starting Name"); generalExampleClass.NameChangedArgs += new NameChangeDelegateArgs(DoSomthingWhenEventFires); generalExampleClass.MyOtherName = "charlie"; generalExampleClass.MyOtherName = "chuckles"; }
public static void InvokeDelegate2() { GeneralExampleClass generalExampleClass = new GeneralExampleClass(); // by using the += we can concatinate event delegates to the NameChanged Property over and over so that each method tied to the // delegate added is fired when the MyName Property changes. Its a way to add many methods to one property being used by a delegate. // each one of these are considered to be subscriptions to the event that is actually a delegate. generalExampleClass.NameChanged += new NameChangeDelegate(DoSomthingWhenNamedChanged); generalExampleClass.MyName = "some name"; generalExampleClass.NameChanged += new NameChangeDelegate(DoSomthingWhenNamedChanged2); generalExampleClass.MyName = "some name2"; // the C# compilier is smart enough to find the correct method without invoking a new NameChangedDelegate object generalExampleClass.NameChanged += DoSomthingWhenNamedChanged3; generalExampleClass.MyName = "some name3"; }