Verwendung von Delegierten in C # (oder anderen Sprachen)

Ich habe mich immer gefragt, wie Delegierte nützlich sein können und warum wir sie verwenden sollen. Andere als typsichere und all diese Vorteile in der Visual Studio-Dokumentation, was sind die realen Einsatzmöglichkeiten von Delegierten.

Ich habe bereits eine gefunden und sie ist sehr zielgerichtet.

using System;

namespace HelloNamespace {

    class Greetings{
    public static void DisplayEnglish() {
            Console.WriteLine("Hello, world!");
    }
    public static void DisplayItalian() {
             Console.WriteLine("Ciao, mondo!");
    }
    public static void DisplaySpanish() {
             Console.WriteLine("Hola, imundo!");
         }
    }

    delegate void delGreeting();

    class HelloWorld {
        static void Main(string [] args) {

    int iChoice=int.Parse(args[0]);
    delGreeting [] arrayofGreetings={
             new delGreeting(Greetings.DisplayEnglish),
             new delGreeting(Greetings.DisplayItalian),
             new delGreeting(Greetings.DisplaySpanish)};

    arrayofGreetings[iChoice-1]();
         }
    }
}

Dies zeigt mir jedoch nicht genau die Vorteile der Verwendung von Delegaten anstelle eines bedingten "If ... {}", das das Argument analysiert und die Methode ausführt.

Weiß jemand, warum es besser ist, hier "delegate" zu verwenden, als "if ... {}". Haben Sie auch andere Beispiele, die den Nutzen von Delegierten demonstrieren?

Vielen Dank!

Antworten auf die Frage(11)

Ihre Antwort auf die Frage