static void Main(string[] args) { MinDelegate1 f1 = new MinDelegate1(MinSkrivTilConsole); f1.Invoke("test"); MinDelegate1 f2 = MinSkrivTilConsole; f2.DynamicInvoke("test"); MinDelegate1 f3 = MinSkrivTilConsole; f3 += Console.WriteLine; f3("test"); f1 -= MinSkrivTilConsole; f2 -= MinSkrivTilConsole; f3 -= MinSkrivTilConsole; f3 -= Console.WriteLine; if (System.Diagnostics.Debugger.IsAttached) { Console.Write("Press any key to continue . . . "); Console.ReadKey(); } }
static void Main(string[] args) { //MinDelegate1 f1 = new MinDelegate1(MinSkrivTilConsole); //f1.Invoke("test"); MinDelegate1 f1 = MinSkrivTilConsole; f1("test"); MinDelegate1 f2 = MinSkrivTilConsole; f2("test2"); //MinDelegate2 f2 = MinSkrivTilConsole; //Dette virkede også //f2("test2"); MinDelegate1 f3 = MinSkrivTilConsole; f3 += Console.WriteLine; f3("test3"); f1 -= MinSkrivTilConsole; f2 -= MinSkrivTilConsole; f3 -= MinSkrivTilConsole; f3 -= Console.WriteLine; }
static void Main(string[] args) { Console.WriteLine("Delegate - simpel"); MinDelegate1 f1 = new MinDelegate1(MinSkrivTilConsole); f1.Invoke("test"); MinDelegate1 f2 = MinSkrivTilConsole; f2("test"); MinDelegate1 f3 = MinSkrivTilConsole; f3 += Console.WriteLine; f3("dav"); f1 -= MinSkrivTilConsole; f2 -= MinSkrivTilConsole; f3 -= MinSkrivTilConsole; f3 -= MinSkrivTilConsole; //f1("q"); //f2("w"); //f3("z"); }
static void Main(string[] args) { MinSkrivTilConsole("Text"); MinDelegate1 m1 = new MinDelegate1(MinSkrivTilConsole); m1.Invoke("hatten er fin"); MinDelegate1 m2 = MinSkrivTilConsole; m2("frakken er også flot"); MinDelegate1 m3 = MinSkrivTilConsole; m3 += Console.WriteLine; m3("bøllehat"); Console.WriteLine(m3.ToString()); m1 -= MinSkrivTilConsole; m2 -= MinSkrivTilConsole; m3 -= MinSkrivTilConsole; m3 -= Console.WriteLine; /* * m1 = null; * m2 = null; * m3 = null; */ }
static void Main(string[] args) { Action <string> f1 = MinSkrivTilConsole; //Dette er også en delegate, men den kræver ikke definition (Action er en Void) f1.Invoke("test1"); f1 -= MinSkrivTilConsole; MinDelegate1 f2 = new MinDelegate1(MinSkrivTilConsole); //Løsning med Delegate kræver at delegate defineres i namespace f2("test2"); f2 -= MinSkrivTilConsole; Func <int> f3 = metode1; //Dette er en delegate, der retunere en værdi f3(); int metode1() { Console.WriteLine("**** Test3 ****"); return(0); } Action f4 = () => Console.WriteLine("**** Test4 ****"); //Her bruges Lamda metoden. Det er en meget komprimeret metode f4(); if (System.Diagnostics.Debugger.IsAttached) { Console.Write("Press any key to continue . . . "); Console.ReadKey(); } }
static void Main(string[] args) { Console.WriteLine("*"); MinDelegate1 f1 = new MinDelegate1(Console.WriteLine); f1 += MinSkriv; f1.Invoke("*"); f1("*"); Console.ReadKey(); f1 -= MinSkriv; f1 -= Console.WriteLine; }
static void Main(string[] args) { //Metode1(); // \/ func pointer object\\ MinDelegate1 f1 = new MinDelegate1(Metode1); // f1 = object which is referencing to Metode1. f1.Invoke(); MinDelegate4 l1 = Metode2; // Reference to Metode2; l1 += Metode3; l1 += LogTilFil; l1.Invoke("World"); Console.ReadLine(); }
static void Main(string[] args) { MinDelegate1 f1 = new MinDelegate1(MinSkrivTilConsole); f1.Invoke("Test"); MinDelegate1 f2 = MinSkrivTilConsole; f2.Invoke("Test2"); MinDelegate1 f3 = MinSkrivTilConsole; f3 += Console.WriteLine; f3("Test3"); f1 -= MinSkrivTilConsole; f2 -= MinSkrivTilConsole; f3 -= MinSkrivTilConsole; }
static void Main(string[] args) { MinDelegate1 f1 = new MinDelegate1(MinSkrivTilConsole); f1?.Invoke("test1"); MinDelegate1 f2 = MinSkrivTilConsole; f2("test2"); MinDelegate1 f3 = MinSkrivTilConsole; f3 += Console.WriteLine; f3("test3"); f1 = f1 - MinSkrivTilConsole; f1 = f1 - MinSkrivTilConsole; //Despite being empty at this point, you can still """remove""" functions from the delegate, this does not throw an exception. f1 = f1 - MinSkrivTilConsole; f2 -= MinSkrivTilConsole; f3 -= MinSkrivTilConsole; f3 -= Console.WriteLine; f1("test4"); //Using a null delegate, however, will throw an exception. f2("test5"); f3("test6"); if (System.Diagnostics.Debugger.IsAttached) { Console.Write("Press any key to continue . . . "); Console.ReadKey(); } }
static void Main(string[] args) { MinDelegate1 f1 = new MinDelegate1(MinSkrivTilConsole); f1.Invoke("Virker det? Ja!"); MinDelegate1 f2 = MinSkrivTilConsole; f2("Virker det igen? Ja sørme ja!"); Console.WriteLine(); Console.WriteLine("Mellemrum"); MinDelegate1 f3 = MinSkrivTilConsole; f3 += MinSkrivTilConsole; f3 += Console.WriteLine; f3("Skulle også gerne virke"); f1 -= MinSkrivTilConsole; f2 -= MinSkrivTilConsole; f3 -= MinSkrivTilConsole; f3 -= MinSkrivTilConsole; f3 -= Console.WriteLine; }
static void Main(string[] args) { Metode1(); MinDelegate1 f1 = new MinDelegate1(Metode1); f1.Invoke(); Action f1a = Metode1; f1a.Invoke(); LogDelegate l1 = Metode2; l1.Invoke("!!!"); Action <string> l2 = Metode2; l2 += Console.WriteLine; l2.Invoke("////"); Action <int, bool, double> l3a; Func <int, int> f4 = Test; Console.WriteLine(f4(5)); Func <int, int, int> f5 = LægSammen; Console.WriteLine(f5(6, 6)); return; //LogDelegate l1 = new LogDelegate(Metode2); //l1.Invoke("!!!"); //LogDelegate l1 = Metode2; //l1 += Metode2; //l1 += Metode2; //l1 += Console.WriteLine; //l1 += LogTilFil; //l1.Invoke("!!!"); //l1("123"); //foreach (var item in l1.GetInvocationList()) //{ // item.DynamicInvoke("ss"); //} ////l1 -= LogTilFil; ////l1.Invoke("!!!"); //MinDelegate3 f3 = LægSammen; //f3 += LægSammen2; //int t = f3(4, 4); //Console.WriteLine(t); ////int r = f3.Invoke(4, 5); }