Heute bin ich auf ein Szenario gestoßen, in dem ich eine Methode erstellen muss, die dieselbe name, params count and params types
mit einer existierenden teilt, etwa so:
Auf den ersten Blick habe ich nur gesagt, warum man es nicht mit einem anderen Namen nennt und die Dinge erledigt, aber ich konnte nicht! Ich möchte die Lesbarkeit meines Codes beibehalten, an dem ich arbeite, ich möchte, dass es overloaded
zu dem ersten ist,
Also habe ich gesagt, warum nicht einen falschen Parameter nur zur Umgehung dieses Problems vom Compiler Point of View hinzuzufügen.
Was ist die beste Vorgehensweise für diesen Fall? Ich sehe, dass alle Wege meinen Code laufen lassen können, aber keiner von ihnen hat mich befriedigt.
Die Lesbarkeit zu erhalten ist genau warum Sie es umbenennen sollten:
%Vor%Nun, wann immer du die Methode nennst, ist es absolut offensichtlich was du meinst. Das ist sehr viel nicht der Fall, wenn Sie stattdessen die Methode überladen.
Ich bin immer zögerlicher geworden, im Laufe der Zeit zu überladen - es gibt etliche subtile Probleme und Lesbarkeit sehr oft untergeht.
Sie können Ihre Methodensignaturen aktualisieren und Ihren Code gleichzeitig lesbarer machen, indem Sie Folgendes tun:
%Vor%Ich persönlich finde, dass das Hinzufügen von Ausführlichkeit zu Code anderen hilft, die später verstehen, was vor sich geht. Es hilft auch, Ihre Methoden leichter zu "lesen".
Definieren Sie 2 Methoden:
public static Department GetDepartmentByDepartmentName(string departmentName)
public static Department GetDepartmentByEmployeeID(string employeeID)
Eine andere Option wäre die Delegierung an andere Methoden, wenn Sie anhand des Arguments irgendwie zwischen einer Mitarbeiter-ID und einem Abteilungsnamen unterscheiden können.
%Vor%Sie sollten das nur tun, wenn Sie aus Gründen der Übersichtlichkeit keine andere Methode hinzufügen können - die anderen Antworten sind zu 100% punktgenau.
Tags und Links .net c# methods parameters overloading