Hallo,
Ich suche Hilfe bei einem C# Problem. Googeln hat mir hier leider nicht weitergeholfen.
Ich habe eine Elternklasse mit einem Feld.
In einer Unterklasse möchte ich diese Feld überdecken, allerdings nicht mit einem anderen Feld sondern einer Property.
Sieht so aus:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| public class Rohr { public string benennung; public double laenge, querschnitt; }
public class RohrRund : Rohr { public double durchmesser;
new public double querschnitt { get { return (durchmesser * durchmesser * Math.PI / 4.0); } } } |
Dies wird vom Visual Studio so auch ohne Warnungen kompiliert.
Lege ich nun Objekte der Klasse RohrRund an und konvertiere diese mittels (Rohr) zu Objekten der Klasse Rohr ist der Querschnitt des Rohrobjekts immer 0.
Wenn ich direkt die Querschnitteigenschaft des Rohrobjektes anspreche, ist der Wert ungleich 0.
Das Hinzufügen einer set Property hat nichts am Problem geändert.
Weis jemand was hier falsch läuft?
Geht das was ich hier versuche grundsätzlich?
Das Problem ist sicher etwas konstruiert; ich versuche für eine Einführung möglichs viele Sprachelemente unterzubringen.
Trotzdem interessiert es mich doch sehr ob das grundsätzlich geht.
Beste Grüße.
Moderiert von
Kha: C#-Tags hinzugefügt