Verwendung von Aktionsdelegaten in C #
Ich arbeitete mit dem Action-Delegaten in C#, in der Hoffnung, das lernen mehr über Sie und denken, wo Sie nützlich sein könnten.
Hat jemand verwendet den Action-Delegaten, und wenn ja, warum? oder könnten Sie einige Beispiele, wo es nützlich sein könnte?
InformationsquelleAutor der Frage Biswanath | 2008-12-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
MSDN sagt:
Außer, dass, können Sie es als eine generische Delegaten, dauert 1-3 Parameter, ohne Rückgabe eines Wertes.
InformationsquelleAutor der Antwort arul
Hier ist ein kleines Beispiel, das die Nützlichkeit der Action-Delegat
Beachten Sie, dass die foreach-Methode iteriert die Sammlung von Namen und führt die
print
- Methode für jedes Element der Auflistung. Dies ein bisschen ein Paradigmenwechsel, der für uns C# - Entwickler wie bewegen wir uns hin zu einem eher funktionalen Programmierstil. (Für mehr info auf die informatik dahinter Lesen: http://en.wikipedia.org/wiki/Map_(höher-order_function).Nun, wenn Sie mit C# 3 Sie können slick dies ein bisschen mit einem lambda-Ausdruck etwa so:
InformationsquelleAutor der Antwort Andrew Hare
Gut eine Sache, die Sie tun können, ist, wenn Sie einen Schalter haben:
Und mit der macht macht der Aktionen, die Sie aktivieren können, wechseln Sie in ein Wörterbuch:
...
Oder man könnte noch weiter:
....
Nur ein paar Beispiele. Natürlich ist das offensichtlicher ist die Verwendung von Linq-erweiterungsmethoden.
InformationsquelleAutor der Antwort Programmin Tool
Können Sie Aktionen für kurze Ereignis-Handler:
InformationsquelleAutor der Antwort Aaron Powell
Benutzte ich die Aktion delegieren, wie dies in einem Projekt einmal:
dem alle es tut, ist speichern Sie eine Aktion(Methode aufrufen) gegen eine Art von Kontrolle, so dass Sie deaktivieren Sie alle Steuerelemente auf einem Formular zurück, um dort Standard.
InformationsquelleAutor der Antwort Nathan W
Ein Beispiel dafür, wie Action<> verwendet wird.
Konsole.WriteLine ist eine Signatur, die satisifies
Action<string>
.Hoffe, das hilft
InformationsquelleAutor der Antwort Binary Worrier
Ich benutze es wenn ich bin im Umgang mit Illegalen Cross-Thread-Aufrufe Beispiel:
Muss ich Kredit zu geben, Reed Copsey, SO dass Benutzer 65358 für die Lösung. Meine komplette Frage mit Antworten ist ALSO Frage 2587930
InformationsquelleAutor der Antwort Ron Skufca
Habe ich es als callback in einen event-handler. Wenn ich das Ereignis auslösen, ich pass in eine Methode unter einem string-parameter. Dies ist, was die Anhebung der Veranstaltung sieht wie folgt aus:
Methode:
Das ist die Deklaration der Klasse der event-Args:
Diese Weise kann ich die Methode aufrufen, übergeben von den event-handler mit ein paar parameter, die Daten zu aktualisieren. Ich benutze diese auf Anfrage einige Informationen vom Benutzer.
InformationsquelleAutor der Antwort Sorskoot
Verwenden wir eine Menge von Action-Delegat Funktionalität in tests. Wenn wir bauen müssen einige Standard-Objekt, und später brauchen, um es zu ändern. Ich habe kleine Beispiel. Zu bauen, die Standard-person (John Doe) - Objekt verwenden wir
BuildPerson()
Funktion. Später fügen wir Jane Doe zu, aber wir ändern Ihr Geburtsdatum und name und Höhe.InformationsquelleAutor der Antwort evilone