Ich habe zwei Schnittstellen; ISet
y ISet<T>
Beide implementieren Add, Remove und Clear, jedoch mit unterschiedlichen Argumenttypen: object und T.
Jetzt habe ich zwei Möglichkeiten. Entweder lassen ISet<T>
erben von ISet
oder lassen Sie sie voneinander isoliert werden.
Ein großer Vorteil der ISet<T>
erben von ISet
ist natürlich, dass ich immer eine ISet<T>
wo auch immer ich etwas brauche ISet
. Aber dabei muss ich auch den "neuen" Modifikator zu den Stäben mit einem T-Parameter hinzufügen. Ich mag den "new"-Modifikator nicht so sehr, aber vielleicht ist das in diesem Fall die bessere Option?
Es fühlt sich seltsam an, eine ISet<T>
die nicht auch eine ISet
. Das ist die logische Schlussfolgerung. Ich kann gar nicht genau sagen, warum ich den "new"-Modifikator nicht mag. Es ist wie mit dem "goto"-Schlüsselwort. Ich versuche einfach, ihn nicht zu benutzen.
Was sollte ich Ihrer Meinung nach hier tun? Vererben oder nicht?
In .NET haben wir ICollection<T>
y ICollection
die nicht vererbt wird. Auch nicht IList<T>
y IList
. Aber IEnumerable<T>
erben von IEnumerable
.
Ich weiß von der ISet-Schnittstelle, die bereits existiert (dies war nur ein Beispiel)