private static void InstanceDelegateDemo() { Console.WriteLine("----- Instance Delegate Demo -----"); var p = new DelegateDemo(); Counter(1, 3, new Feedback(p.FeedbackToFile)); Console.WriteLine(); }
private static void ChainDelegateDemo2(DelegateDemo p) { Console.WriteLine("----- Chain Delegate Demo 2 -----"); Feedback fb1 = new Feedback(FeedbackToConsole); Feedback fb2 = new Feedback(FeedbackToMsgBox); Feedback fb3 = new Feedback(p.FeedbackToFile); Feedback fbChain = null; fbChain += fb1; fbChain += fb2; fbChain += fb3; Counter(1, 2, fbChain); Console.WriteLine(); fbChain -= new Feedback(FeedbackToMsgBox); Counter(1, 2, fbChain); }
private static void ChainDelegateDemo1(DelegateDemo p) { Console.WriteLine("----- Chain Delegate Demo 1 -----"); Feedback fb1 = new Feedback(FeedbackToConsole); Feedback fb2 = new Feedback(FeedbackToMsgBox); Feedback fb3 = new Feedback(p.FeedbackToFile); //fb1 = FeedbackToConsole; //fb2 = FeedbackToMsgBox; //fb3 = p.FeedbackToFile; Feedback fbChain = null; fbChain = (Feedback)Delegate.Combine(fbChain, fb1); fbChain = (Feedback)Delegate.Combine(fbChain, fb2); fbChain = (Feedback)Delegate.Combine(fbChain, fb3); Counter(1, 2, fbChain); Console.WriteLine(); fbChain = (Feedback) Delegate.Remove(fbChain, new Feedback(FeedbackToMsgBox)); Counter(1, 2, fbChain); }