In the CLR via C # , Jeffrey Richter gives the following example of a delegation chain (p. 406):
internal delegate void Feedback(Int 32 value);
Feedback fb1 = new Feedback(method1);
Feedback fb2 = new Feedback(method2);
Feedback fb3 = new Feedback(method3);
Feedback fbChain = null;
fbChain = (Feedback) Delegate.Combine(fbChain, fb1);
fbChain = (Feedback) Delegate.Combine(fbChain, fb2);
fbChain = (Feedback) Delegate.Combine(fbChain, fb3);
Why should the first call Delegate.Combinego to null Delegate? Here is how I would think it should be written:
Feedback fbChain = (Feedback) Delegate.Combine(fb1, fb2);
fbChain = (Feedback) Delegate.Combine(fbchain, fb3);
source
share