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 stinkt

    der 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?


Log in to reply