Textbox Design
-
Hallo,
noch eine kurze andere Frage. Wenn ich eine Textbox habe, in der man Werte verändern kann was ist vom Design her besser:bei einer Änderung eine private Variable der entsprechenden Form aktualisieren oder bei jedem Aufruf direkt den Wert der Textbox mit der notwendigen Konvertierung (also ohne zusätzliche private Variable). Oder ganz anders ?
Die Werte sind Eingabedaten für andere Klassen.Gruß
-
Das lässt sich pauschal nicht sagen da es von vielen Faktoren abhängt.
-
najo - eine zusaetzliche variable ist doch eher doppelte datenhaltung oder?
die frage ist eher
- werden die werte noch gebraucht nachdem die textbox nicht mehr existiert?
- werden die werte von aussen vorher schon gesetzt bevor es die textbox gibt?wenn du beides verneinen kannst - ist direkt zu bevorzugen denn
a) du brauchst dich nicht darum kuemmern das die variable stets aktuell ist
b) die variable jedes mal fuellen kann performance kosten
c) wozu eine variable benutzen wenn die box jederzeit da ist und die daten auch stets aktuell kennt
d) doppelte datenhaltung stinktder nachteil ist das du die box nicht "mal eben" ersetzen kannst, das waere bei einer variablen einfacher
-
Wenn du den Wert konvertieren musst würde ich das so machen
private int DeinWert { get { return int.Parse(DeineTextBox.Text); } set { DeineTextBox.Text = value.ToString(); } }
-
Erwartet man beim Zugriff auf eine Eigenschaft eine Exception ?
-
int.Parse so ist unschoen - wenn sollte man TryParse verwenden - amsonsten kanns ins auge gehn wenns keine zahl ist
ich loes soas immer mit einer extension method
namespace Helper { public static class Converter { static public int ToInt(this string value) { int result; return (int.TryParse(value, out result)) ? result : 0; } } }
dann geht mit sicherheit auch
return DeineTextBox.Text.ToInt();
ohne eine exception
-
Auch das sehe ich nicht als ok an. Wenn jemand "Hallo Welt" angibt, ist das nicht 0
-
Was wäre deine Alternative, wenn weder Exception noch Defaultwert dir genügen?