Ich habe eine Funktion, die dieselbe Art von Objekten zurückgibt (Abfrageergebnisse), aber keine gemeinsamen Eigenschaften oder Methoden hat. Um einen gemeinsamen Typ zu haben, habe ich eine leere Schnittstelle als Rückgabetyp verwendet und diese auf beiden "implementiert".
Das klingt natürlich nicht richtig. Ich kann mich nur trösten, indem ich mich an die Hoffnung klammere, dass diese Klassen eines Tages etwas gemeinsam haben und ich diese gemeinsame Logik auf meine leere Oberfläche verschieben werde. Dennoch bin ich nicht zufrieden und denke darüber nach, ob ich zwei verschiedene Methoden haben und als nächstes bedingt anrufen soll. Wäre das ein besserer Ansatz?
Mir wurde auch gesagt, dass .NET Framework leere Schnittstellen für Tagging-Zwecke verwendet.
Meine Frage ist: Ist eine leere Schnittstelle ein starkes Zeichen für ein Designproblem oder wird sie häufig verwendet?
EDIT : Für Interessierte fand ich später heraus, dass diskriminierte Gewerkschaften in funktionalen Sprachen die perfekte Lösung für das sind, was ich erreichen wollte. C # scheint diesem Konzept noch nicht freundlich zu sein.
EDIT : Ich habe ein längeres Stück über dieses Problem geschrieben und das Problem und die Lösung im Detail erklärt.