Entwickler-Ecke
C# - Die Sprache - get-set Problem
ThomAlex - Mo 19.10.09 18:34
Titel: get-set Problem
Hallo ich habe vor ein paar Wochen angefangen mich mit Programmierung zu beschäftigen, ich bin kein Umsteiger sondern Neuling in dieser Materie. Mit der Programmiersprache C# arbeite ich und komme bei einem Thema nicht zurecht.
Nämlich befasse ich mich gerade mit Eigenschaftsmethoden und da kamen die Accessoren "set" und "get" zu Wort. Quelle: Galileo Computing C# Tutorial
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| class Program { static void Main(string[] args) { Circle neu = new Circle(); Console.WriteLine(neu.Radius); Console.ReadLine(); } }
public class Circle { private double radius = -1;
public double Radius { get { return radius; } set { if (value >= 0) radius = value; else Console.Write("Unzulässiger Wert."); } } } |
ich will das auslesen und hab auch "radius" verschiedene Zahlen zugewiesen und bei ungültigen Zahlen sollte die Ausgabe: Unzulässiger Wert, erscheinen, das ist aber nicht der Fall, wo ist mein Denkfehler,
Danke im vorraus für hilfreiche Antworten
MFG ThomAlex
Moderiert von
Christian S.: C#-Tags hinzugefügt
JasonDelife - Mo 19.10.09 20:28
Radius wird ja nichts zugeweisen.
Du erzeugst einen neuen Kreis.
Dann gibst du den Radius (-1) aus.
Ende.
Der set-Teil wird hier garnicht benutzt.
Grüße, JasonDelife.
ThomAlex - Mo 19.10.09 21:00
ok das stimmt, es ist bei solch Code für Anfänger schwer den Überblick zu behalten xD
Könntest du mir ein ganz simples Beispiel (vllt auch sogar auf meins bezogen) coden, wo set zum Einsatz kommt? Würde es dann besser nachvollziehen können
MFG
Gabe - Mo 19.10.09 21:02
ThomAlex hat folgendes geschrieben : |
ok das stimmt, es ist bei solch Code für Anfänger schwer den Überblick zu behalten xD
Könntest du mir ein ganz simples Beispiel (vllt auch sogar auf meins bezogen) coden, wo set zum Einsatz kommt? Würde es dann besser nachvollziehen können
MFG |
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| class Program { static void Main(string[] args) { Circle neu = new Circle(); Console.WriteLine("Radius: "); neu.Radius = Convert.ToInt32(Console.ReadLine()); Console.ReadLine(); } }
public class Circle { private double radius;
public double Radius { get { return radius; } set { if (value >= 0) radius = value; else Console.Write("Unzulässiger Wert."); } } } |
Hi,
dein Beispiel etwas abgeändert. So funktioniert es wie du willst.
Tipp:
Haltepunkte setzen und durchdebuggen, dann siehst du schön wie der setter aufgerufen wird.
Gruß Gabe
ThomAlex - Mo 19.10.09 21:21
Danke sehr hilfreich, echt nett
Damit wär mein Problem gelöst
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!