Was ist der beste Weg, um einen Rückruf zu schreiben? Ich muss nur 1 Funktion aufrufen, die das Signal void (string, int) hat; und das würde eine Klasse aufrufen müssen, da ich Member-Objekte habe, die ich verarbeiten muss. Was ist der beste Weg dies zu schreiben? in C würde ich einen Func-Zeiger und ein void * obj übergeben. Ich mag das nicht und ich vermute, dass es einen besseren Weg gibt, dies in C# zu tun?Wie sollte ich einen Rückruf erstellen
Antwort
Der übliche Weg der Handhabung (oder die Notwendigkeit für den Ersatz) Rückrufe in C# ist Delegierten oder Veranstaltungen zu nutzen. See this tutorial for details.
Dies bietet eine sehr leistungsfähige, saubere Art der Behandlung von Rückrufen.
In C# 3.0 wurden Lambdas eingeführt, mit denen Sie auf die Deklaration von Callback- (oder Delegat-) Signaturen verzichten können. Es ermöglicht Ihnen, Dinge wie:
static void GiveMeTheDate(Action<int, string> action)
{
var now = DateTime.Now;
action(now.Day, now.ToString("MMMM"));
}
GiveMeTheDate((day, month) => Console.WriteLine("Day: {0}, Month: {1}", day, month));
// prints "Day: 3, Month: April"
Ich frage mich, warum jemand das abgelehnt hat! Der Code funktioniert, und es scheint die Frage zu beantworten. –
Ich habe es gewählt. "Macht" korrumpiert, selbst einige von uns Nerds. – SinisterRainbow
Ist das was du meinst?
thatfunc(params, it, wants, Func<myObject> myCallbackFunc)
{
myObject obj = new Object();
myCallbackFunc.Invoke(obj);
//or
myCallbackFunc.Invoke(this);
//I wasn't sure what if myObject contained thatFunc or not...
}
- 1. Wie sollte ich einen schnellen Emulator erstellen?
- 2. Wie oft sollte ich einen EntityManager erstellen?
- 3. Ich muss einen einfachen Rückruf in C++ erstellen? Sollte ich die boost :: Funktion benutzen?
- 4. Wann sollte ich einen neuen Zweig erstellen?
- 5. Wie kann ich einen IOKit.HID-Rückruf "abmelden"?
- 6. Für welches JEditorPane-Ereignis sollte ich einen Listener erstellen?
- 7. Node.js Wie bediene ich einen Rückruf?
- 8. Wie handhabe ich einen Rückruf in Java
- 9. Wie Sie einen Rückruf Fehler
- 10. Shopify Rails App: Auslösung Rückruf für einen Shop neu erstellen
- 11. Wann sollte ich eine Klasse für einen Map-Schlüssel erstellen?
- 12. WPF Wie sollte ich einen Eigenschaftspfad auswerten?
- 13. Wie bekomme ich einen Rückruf für Benachrichtigungen in Android erhalten?
- 14. Google Plus One Button - Wie füge ich einen Rückruf hinzu?
- 15. Wie erstelle ich einen grundlegenden wiederholenden Rückruf in Cordova?
- 16. Hat das Gerät einen 'Rückruf'?
- 17. SVMLight: Wie kann ich einen Klassifikator erstellen?
- 18. Sollte ich DLLs für Modularität erstellen?
- 19. Wo sollte ich meinen Entwicklungsblog erstellen?
- 20. Sollte ich einen OAuth2-Server einrichten?
- 21. Wann sollte ich :: einen Funktionsaufruf weiterleiten?
- 22. Sollte ich C# Formular zur Laufzeit erstellen
- 23. Rückruf für Alamofire erstellen, mit dem ich JSON manipulieren kann
- 24. Wo sollte ich meine DbCommand-Instanzen erstellen?
- 25. Sollte ich Unterklasse NSManagedObject erstellen oder nicht?
- 26. Wie viele Cookies sollte ich für mehrere Geräte erstellen?
- 27. Wie sollte ich die Subsonic 3.0 DB Kontextklasse erstellen?
- 28. Observable für einen Rückruf in Rx
- 29. Sollte ich Formularobjekte erstellen oder aus Modell
- 30. Sollte ich eine einzelne Datei App erstellen?
Sie werden die Frage neu schreiben müssen. Es macht keinen großen Sinn und es gibt keinen Zusammenhang. – Samuel
Ihre Frage ist noch nicht sehr klar. Was soll was rufen? – Samuel