Frage

etwas andere Frage über Varianz dieser Zeit.

Ich nehme es von Experimenten, dass C # erlaubt es nicht, eine virtuelle Funktion mit einer kontra Funktion außer Kraft zu setzen? Ist dies der Fall, wie wollen Sie es tun, denn ich bekomme immer wieder „geeignet -Methodenüberladung nicht gefunden.“ Wenn es nicht, warum nicht? wenn die Basisklasse gibt an, dass der Wert in immer ein int sein, und die Unterklasse kann ein Objekt nehmen, wo ist das Problem?

Die gleiche Typen zurückzukehren, sollte in ihrem overrride Unterschrift covariant sein

Welche Sprachen können Sie dies tun? (C ++ / Java ich dich suchen), und wenn sie Sie verwenden lassen, Varianz, welche Arten? (Rückgabetyp / Argumentliste etc.)

Könnte haben Sie mehrere Überschreibungen? Ich sehe nicht, warum nicht, solange die Unterschriften waren technisch einzigartig.

Warum C # / CLR keine Unterstützung Methodenüberschreibung co / kontra~~POS=TRUNC?

las ich dieses, und ich sehe keine Antworten auf eine der Fragen. Ich weiß, über generische Varianz, und ich weiß, es ist genial. Ich möchte über Methodensignatur Varianz wissen, und das nicht nur in C #, sondern auch in C # (d. Einschließlich, aber nicht beschränkt auf). Wenn es nicht vorhanden ist würde ich eine Bestätigung dafür mag und eine Erklärung (es ist eine Implementierung Detail? Ist meine Art Theorie falsch? Ist es nur die CLR / C # diese besondere Funktion nicht unterstützen passiert? Ist es etwas, das ich haven‘ t gedacht, da ich um die CLR nicht befassen sich mit der Umsetzung und daher nicht spezifisch komplexe Details wissen?)

War es hilfreich?

Lösung

Gefunden die Antwort, Abschnitt 10.6.4 in der C # Spezifikation legt fest, dass Überschreibungen müssen die gleiche Signatur haben

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top