Ich habe mich kürzlich an anderer Stelle* zu diesem Thema geäußert, aber ich denke, es verdient eine eingehendere Analyse, daher stelle ich diese Frage als eigenständige Frage.
Nehmen wir an, ich muss in meinem Programm einen Container erstellen und weitergeben. Ich habe wahrscheinlich keine starke Meinung über eine Art von Container gegenüber einer anderen, zumindest zu diesem Zeitpunkt, aber ich wähle einen aus; um der Argumentation willen, sagen wir, ich werde einen Liste<> .
Die Frage ist: Ist es besser, meine Methoden so zu schreiben, dass sie eine hochrangige Schnittstelle wie die von C# akzeptieren und zurückgeben? IEnumerable ? Oder sollte ich Methoden schreiben, um die spezifische Containerklasse, die ich gewählt habe, zu übernehmen und zu übergeben.
Auf welche Faktoren und Kriterien sollte ich bei meiner Entscheidung achten? Für welche Art von Programmen eignet sich das eine oder das andere? Beeinflusst die Computersprache Ihre Entscheidung? Leistung? Programmgröße? Persönlicher Stil?
(Ist das überhaupt wichtig?)
**(Hausaufgabe: Finden Sie sie. Aber bitte posten Sie Ihre Antwort hier, bevor Sie nach meiner suchen, um Sie nicht zu beeinflussen)*.