static void delegates() { //declaring a delegate printFormats1 handler1 = new printFormats1(format1); //adding method references to delegate1 handler1 += format2; handler1 += format3; handler1 += format4; handler1 += format5; //invoking methods handler1(10); //deleting methods from a delegate instance handler1 -= format3; handler1 -= format4; handler1 -= format5; //other way to instance a delegate printFormats2 handler2 = format3; handler2 += format4; handler2 += format5; //anoter way to invoke methods handler2.Invoke(30); }
static void AnonymusMethod() { Action writeTitle = delegate() { Console.WriteLine("The Main Title"); }; writeTitle(); Func <int, string> Num2Text = delegate(int number) { switch (number) { case 1: return("one"); case 2: return("two"); case 3: return("three"); default: return("it is not in the list"); } }; Predicate <string> IsNumber = delegate(string s) { int i; float f; return(int.TryParse(s, out i) || float.TryParse(s, out f) ? true : false); }; Console.Write("Write a number(1-4):"); string value = Console.ReadLine(); if (IsNumber(value)) { Console.WriteLine("The Text of the number {0} is : {1}", value, Num2Text(int.Parse(value))); } printFormats1 format = delegate(int i) { format1(i); }; format(int.Parse(value)); anonymus(delegate() { Console.WriteLine("This is anonymus method as a parameter"); }); }