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!