Ich verwende gerade Folgendes:
%Vor%Es funktioniert, aber es fühlt sich irgendwie falsch an. Der Python-Weg wäre eher so:
%Vor%Ich habe wirklich Schwierigkeiten, mir vorzustellen, dass C # so etwas nicht kann. Es kann sein, dass meine Google-Fähigkeiten schlecht sind, aber ich kann es nicht herausfinden.
LÖSUNG
%Vor%%Vor%
Sie können dies mit einigen Vorbereitungen tun, indem Sie Delegaten wie folgt verwenden:
%Vor%Wenn es Zeit ist, Ihre Aktion aufzurufen, tun Sie dies wie folgt:
%Vor% Sie können Dictionary
der Delegierten als einfachsten Weg beibehalten:
Dann nenne es so:
%Vor% Je nachdem, was Ihre Methoden zurückgeben, müssen Sie möglicherweise auch den Typ des Delegaten ändern (zum Beispiel Action<string>
bedeutet void something(string someparam)
als Methodensignatur).
Ich glaube, was Sie suchen, wird ein Refactoring Ihres Codes benötigen.
Alle Ihre "Fälle" (TextFile, MSOfficeWordFile, MSOfficeExcelFile, PdfFile) sollten ihre eigenen Klassen sein, die eine einzelne Schnittstelle implementieren.
Ihre Schnittstelle sollte so etwas wie "IReadableFile" heißen und eine Methode namens "ReadFile ()" angeben.
Jede Klasse sollte ihre eigene Implementierung von "ReadFile ()"
habenBeispiel:
%Vor% %Vor% %Vor%Code kann einige Fehler enthalten, aber ich hoffe, Sie bekommen die Idee.