Ich habe eine Methode SaveChanges<T>(T object)
, die häufig in meinem Code aufgerufen wird, außer in Abhängigkeit von der Aktion, die die Methode aufruft, würde es eine andere Methode geben, die von SaveChanges aufgerufen wird. So etwas ...
Anwendungsbeispiele:
%Vor%Ich habe die Delegiertenmethoden gelesen, aber ich bin ein wenig verwirrt darüber, wie ich dies mit meinen Anforderungen umsetzen kann oder ob meine Anforderungen überhaupt für Delegierte gelten.
EDIT: Könnte es auch möglich sein, mehrere Aktionen zu übergeben?
AKTUALISIEREN Ich war ein wenig unklar von Ihrer Frage, ob das übergebene Argument irgendwo anders in der Methode verwendet wird, es sieht nicht so aus, also können Sie einfach ein% co_de nehmen % und verwenden Sie ein Lambda, um den Delegaten anzugeben, der mit dem eingefangenen Argument aufgerufen werden soll:
%Vor%An die Sie übergeben können:
%Vor%Oder wenn es das myObj selbst ist, in diesem Fall (wie sechs Buchstaben-Variablen bereits beantwortet), können Sie es einfach in einem Delegaten gemäß seinem Code übergeben.
Oder, ob sich arg von mlaObject unterscheidet und Sie auch andere Dinge im Code ausführen möchten, in diesem Fall könnten Sie Folgendes tun:
%Vor%Und dann:
%Vor%wenn meine Anforderungen die Verwendung für Delegierte überhaupt rechtfertigen.
Wenn Sie möchten, dass die Methode SaveChanges
eine Funktion ausführt, haben Sie zwei Möglichkeiten
SaveChanges
die Funktion als Delegat zur Verfügung. Wann Sie diese Optionen verwenden sollten, hängt von Ihnen ab und hängt vom Szenario, der Gesamtlösung und Ihren Vorlieben ab.
Vorteile des ersten
SaveChanges
an einer Stelle sehen Vorteile des zweiten
SaveChanges
ausschließen (es ist kein enormer case
oder if else if else if
erforderlich) SaveChanges
übergeben werden, können darüber im Call-Stack liegen, sie müssen nicht wissen, was sie sind oder wie sie funktionieren, sie können Dinge tun, die sie nicht versteht, und sie kann wiederverwendet werden - anderswo angerufen oder als Delegierte in anderen Funktionen verwendet werden. Ich denke, der erste Punkt ist der Hauptpunkt hier. Wenn Sie nur ein paar Szenarien behandeln, dann ist es in Ordnung, ein if else if else if
zu haben, aber wenn Sie mehr als eine Handvoll Optionen bekommen und eine allgemeinere SaveChanges
-Methode bevorzugen, dann psdd das Delegieren.
Ruf so:
%Vor%Ich habe das WebObject-Bit weggelassen, da es überhaupt nicht in der Funktion verwendet wurde.