Entwickler-Ecke
C# - Die Sprache - Verständnisproblem
kiar - Sa 03.12.05 13:43
Titel: Verständnisproblem
moin,
habe 2 Klassen, wobei eine von der ersten abgeleitet werden soll.
Dort habe ich ein property Kilometer
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| private int kilometer; public virtual int Kilometer { get { return kilometer;} set { kilometer = value;} }
private int kilometer; public override int Kilometer { get { if (kilometer >= base.Kilometer) return kilometer; else return 0; } set { kilometer = value;} } |
leider wird in der abgeleiteten Klasse auch eine Angabe akzeptiert, welche kleiner als die Basis ist.
was mache ich verkehrt?
raik
Christian S. - Sa 03.12.05 13:46
Was meinst Du denn mit "akzeptiert"? Die Abfrage ist doch im Getter und nicht im Setter :gruebel:
Robert_G - Sa 03.12.05 13:55
Wie Christian bereit schrieb: Packe die Prüfung in den Setter.
Außerdem verschwendest du so Resourcen. ;)
Deine Ableitung besitzt jetzt 2 Felder kilometer. Eins vom Vorgänger und das von ihr selbst.
Es wäre vllt besser in der überschriebenen property auf die property des Vorgängers zuzugreifen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| public override int Kilometer { get { return base.Kilometer; } set { if (value >= base.Kilometer) base.Kilometer = value; else ...; } } |
Schon sparst du dir das unnütze Feld im Nachfolger. (Felder kosten Speicher, properties nicht ;) )
kiar - Sa 03.12.05 14:15
juuuuut,
mit der setter war ein denkfehler :oops:
aber auch wenn ich den einen kleineren Wert in die Ableitung schreibe wird diese übernommen, obwohl es doch nicht sein dürfte.
raik
edit// ausserdem wird gemeckert, das ich auf kilometer von base nicht zugreifen kann, auf grund der sicherheitsebene
Robert_G - Sa 03.12.05 14:37
Zitat: |
aber auch wenn ich den einen kleineren Wert in die Ableitung schreibe wird diese übernommen, obwohl es doch nicht sein dürfte. |
Kannst du es dir nochmal ankieken? Oder einfach geneau sagen wo der Schuh drückt?
Zitat: |
edit// ausserdem wird gemeckert, das ich auf kilometer von base nicht zugreifen kann, auf grund der sicherheitsebene |
Sorry, mein Fehler.
Hatte ein kilometer (man beacht das kleine k) vergessen mit value zu ersetzen.
kiar - Sa 03.12.05 15:46
Ich habe hier eine Hinfahrt und eine Rückfahrt. logisch ist, das der Kilometerstand nach der Rückfahrt höher sein muss als es bei der Hinfahrt war.( ich Held :shock: ).
Retour ist die abgeleitet Klasse von Hinfahrt.
Ich möchte erreichen, das es nicht sein kann, das der Kilometerstand bei der Rückfahrt nicht kleiner sein kann als bei der Hinfahrt.
OT... kann mir mal jemand sagen wie ich vernünftig debuggen kann in #d , oder mir mal zeigen wo es eine Anleitung darüber gibt.
danke Raik
Christian S. - Sa 03.12.05 15:51
Aber die Kilometerzahl wird ja nicht in der Klasse, sondern in der Instanz einer Klasse gespeichert. Wie verknüpfst Du denn die Instanz der Hinfahrt-Klasse mit der Instanz der Rückfahrt-Klasse?
kiar - Sa 03.12.05 16:00
:oops: das ist doch mal ne gute Frage, die ich dir garnicht beantworten kann, werde wohl noch ne methode schreiben müssen.
naja OOP ist für mich nicht so einfach und dann noch mit einer , für mich, neuen Sprache.
danke raik
Robert_G - Sa 03.12.05 22:35
kiar hat folgendes geschrieben: |
OT... kann mir mal jemand sagen wie ich vernünftig debuggen kann in #d , oder mir mal zeigen wo es eine Anleitung darüber gibt. |
Schaue dir mal den Clr-Debugger an. Wie du ihn benutzt sollte im #d Wiki stehen. ;)
#d2 bringt selbst einen Debugger mit...
Christian S. - So 04.12.05 03:00
Weitergehende Diskussionen dazu dann aber bitte in einem eigenen Thread! :mahn: ;-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!