Problem mit get und set
-
Hallo
ich habe zum Test ein Programm mit get und set geschrieben:namespace Test { class Kreis { private int radius = 0; public double Radius { get{ return radius; } set { radius = value; } } public double Flaeche() { return radius * radius * Math.PI; } } }
das problem ist, dass value einen fehler hervorruft und zwar diesesn: Der Typ "double" kann nicht implizit in "int" konvertiert werden. Es ist bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt eine Umwandlung.)
aber es ist keine explizite konvertierung vorhanden und konvertieren funktioniert auch nicht. Kann mir wer helfen?
Danke im voraus
-
Entweder casten oder radius zu double machen (was IMHO sinvoller wäre)
-
oh ich vollidiot ich merk ja jetzt erst das radius ein integer ist. danke.
Was ist casten?
-
int int_pi; double pi = 3.141592; // von double nach int casten int_pi = (int) pi;
-
Ich glaube, man muss erst in Float und dann in Int casten(explizit beides). Aber Radius zu Double machen ist sinnvoller.
-
Oder einfach Convert benutzen (dafür ist es da...)
it_pi = Convert.ToInt32(pi);
-
nicht_eingeloggt schrieb:
Ich glaube, man muss erst in Float und dann in Int casten(explizit beides). Aber Radius zu Double machen ist sinnvoller.
Unsinn. Entweder System.Convert verwenden (s.o.) oder direkt casten.
int i = 0; double sad = 123.123; i = (int)sad;
-
Anmerkung: Wieso ist 'Flaeche' ne Methode? Hier passt eine Property doch eigentlich besser.
-
wie gesagt ich hab das nur zum test von get und set geschrieben und nebenbei hab ich keine ahnung was eine Property ist (bitte nicht hauen)
-
ein property ist genau das was du mit radius gemacht hast
public double Flaeche { get { return radius * radius * Math.PI; } }
1stes google ergebnis, hf :p
http://ag-kastens.uni-paderborn.de/lehre/material/csharp/Properties.pdf