Ich habe zwei Methoden, die den Text oder das Tag der darunter liegenden Checkboxen im Grunde als CSV-Strings konvertieren.
Diese zwei Methoden
unterscheiden sich nur durch die Eigenschaft , um den Wert von SelectedCheckBoxes
, der vom Typ IList<CheckBox>
Ich habe versucht, eine Methode zu extrahieren, die Func<T, TResult>
zurückgibt, bin mir aber nicht sicher, wie ich das schaffen kann.
Mein armer Versuch war wie der folgende, aber ich kann nicht herausfinden, wie man den Eigenschaftsteil extrahiert, wie gezeigt im Kommentar innerhalb ConvertToCsv()
Wenn ich auf einer falschen Spur bin, würden Sie mir bitte raten, wie ich den obigen Code umgestalten kann, um eine übliche Methode zu verwenden?
[UPDATE 1] Hier ist die Kombination der Antworten von Brian und Jon
%Vor%[UPDATE 2] Version 2
%Vor% [UPDATE 3] Der Parameter GetAsCsv()
wurde als geschlossenes generisches Element von CheckBox und string
Func<CheckBox, T>
bisFunc<CheckBox, string>
.
Damit konnte ich GetAsCsv()
noch einfacher und lesbarer machen.
Ich würde nur eine kurze Erweiterungsmethode um IEnumerable string schreiben, die ein Trennzeichen verwendet:
%Vor%dann können Sie tun:
%Vor%Da die beiden Funktionen für den Getter genau dieselben sind wie außer , sollten Sie hier beginnen: Der bewegliche Teil.
Habe meine C # noch nicht aufgeräumt, aber etwas in der Art von:
%Vor% sollte funktionieren. Machen Sie auch SelectedCheckBoxes
Variable?
Tags und Links .net c# csv refactoring