TextBox Inhalte multiplizieren etc.!



  • mogel schrieb:

    FreakY<3Cpp schrieb:

    Und warum sollte es das tuen?

    weil Du ungefragt Benutzereingaben nutzt und somit mutwillig Sicherheitsvorkehrung ignorierst ... sollte im Berufsleben für Informatiker mit Abmahnungen belohnt werden

    darum ging es doch garnicht ... man kann doch nicht auf jedes detail das in der praxis relevant wäre eingehen. Könnte ebenso behaupten das du mir mit einer tmp variable einen weiteren angriffspunkt bietest.



  • Doug_HH schrieb:

    @Code-$: Gewöhne Dir das bitte nicht erst an.

    Keine Sorge, der beleidigt aus Faulheit lieber Leute die ihm helfen, aber keinen kompletten Code posten wollen...



  • Code-$ schrieb:

    double a;
    double b;
    double result;

    a = double.Parse(textBox1.Text);
    b = double.Parse(textBox2.Text);

    result = a + b;

    textBox5.Text = result.ToString();

    1. Benutze double.TryParse um sicher zu sein das die Eingabe auch valides double ist, sonst macht es Peng, Qualm, Stink
    2. Setze korrekte CultureInfo als IFormatProvider, wenn nicht kannst du möglicherweise falsche Werte bekommen im Tausender Bereich.



  • FreakY<3Cpp schrieb:

    Wäre es jetzt eine etwas kompliziertere for-Schleife oder sonstiges, würde ich es verstehen, aber was ist an so einer Zeile nicht zu verstehen? Wie PRIEST schon meinte, ist wohl zu hoch für manche. Egal wann man so einen Code wieder lesen wird, sowas sollte man auf alle Fälle verstehen.

    Es geht um den Programmierstil und der ist schlicht und einfach Mist.

    Würdest Du bei mir im Team arbeiten, würde ich Dich zwei bis dreimal drauf hinweisen, danach könnest Du Deinen Hut nehmen.

    Du schreibst bestimmt auch keine Kommentare in Deinen Code.
    Wie auch, wenn alles in einer Zeile steht!?

    Und wirklich Sinn macht Deine Schreibweise auch nicht, weil zwei Zeilen gespart werden, wird das Programm um 10 MB kleiner. 🙄



  • Also ich würde auch eher ausführlicheren Code bevorzugen. Aber ich verstehe nicht was das mit Validation zu tun hat. Wenn die Eingabe nicht in eine Zahl gewandelt werden kann würde ich doch selber auch nur werfen, da kann das System es ja selber tun.



  • mogel schrieb:

    FreakY<3Cpp schrieb:

    Und warum sollte es das tuen?

    weil Du ungefragt Benutzereingaben nutzt und somit mutwillig Sicherheitsvorkehrung ignorierst ...

    😕 ...
    Und wenn ich jetzt 20 Zeilen Code mehr schreibe darf ich das ?
    In der Aufgabe stand nirgendswo etwas von Sicherheit dieser Art.

    CSL schrieb:

    1. Benutze double.TryParse um sicher zu sein das die Eingabe auch valides double ist, sonst macht es Peng, Qualm, Stink
    2. Setze korrekte CultureInfo als IFormatProvider, wenn nicht kannst du möglicherweise falsche Werte bekommen im Tausender Bereich.

    Convert sollte beides machen, zumindest das 2., da intern Parse aufgerufen wird mit der CultureInfo Überladung.

    Doug_HH schrieb:

    FreakY<3Cpp schrieb:

    Wäre es jetzt eine etwas kompliziertere for-Schleife oder sonstiges, würde ich es verstehen, aber was ist an so einer Zeile nicht zu verstehen? Wie PRIEST schon meinte, ist wohl zu hoch für manche. Egal wann man so einen Code wieder lesen wird, sowas sollte man auf alle Fälle verstehen.

    Es geht um den Programmierstil und der ist schlicht und einfach Mist.

    Würdest Du bei mir im Team arbeiten, würde ich Dich zwei bis dreimal drauf hinweisen, danach könnest Du Deinen Hut nehmen.

    Du schreibst bestimmt auch keine Kommentare in Deinen Code.
    Wie auch, wenn alles in einer Zeile steht!?

    Und wirklich Sinn macht Deine Schreibweise auch nicht, weil zwei Zeilen gespart werden, wird das Programm um 10 MB kleiner. 🙄

    Das ich einen schlechten Stil habe, hat mir noch niemand gesagt 🙂 Dein Code möchte ich erst garnicht sehen, wahrscheinlich stehen bei dir so Zeilen wie

    Console. //Hier arbeite ich mit der Klasse Console weil ich mit der Konsole arbeite
    WriteLine //mit der Funktion, die in der Klasse Console steht, schreibe ich etwas auf die Konsole
    ( //Jetzt beginnt gleich mein Text
    "" //mir fällt nichts anderes ein
    ) //Ende meiner denkreichen Ideen
    ; //vorbei
    

    Damit auch ja alles übersichtlich und schön ist.
    Und Kommentare in mein Code schreibe auch nur, wenn ich davon ausgehen kann, dass mein Code auch später von anderen benutzt wird.
    Dein Team? Dürftest du überhaupt eins leiten?
    Und 2 Zeilen Code habe ich sicherlich nicht gesparrt, dass waren ersichtlich mehr 🤡
    Du kannst dich gerne durch 1000 Zeilen Code ochsen, ich mach sowas nicht. Wenn es Sinn macht, etwas in einer Zeile zu schreiben, mach ich das auch. Meinen Code würde man wohl schneller verstehen, als einen Roman, bei dem man scrollen muss. Wenn die Zeile solang ist, dass man dort auch schon wieder scrollen muss, vermeide ich das natürlich auch.

    Da das aber sowieso so ein Thread ist, bei dem man den anderen von seiner Meinung überzeugen will, schreibe ich dazu jetzt nichts mehr. Ihr könnt gerne nochmal eine Antwort auf diesen Post schreiben 🙄



  • FreakY<3Cpp schrieb:

    Console. //Hier arbeite ich mit der Klasse Console weil ich mit der Konsole arbeite
    WriteLine //mit der Funktion, die in der Klasse Console steht, schreibe ich etwas auf die Konsole
    ( //Jetzt beginnt gleich mein Text
    "" //mir fällt nichts anderes ein
    ) //Ende meiner denkreichen Ideen
    ; //vorbei
    

    😃 👍



  • FreakY<3Cpp schrieb:

    mogel schrieb:

    FreakY<3Cpp schrieb:

    Und warum sollte es das tuen?

    weil Du ungefragt Benutzereingaben nutzt und somit mutwillig Sicherheitsvorkehrung ignorierst ...

    😕 ...
    Und wenn ich jetzt 20 Zeilen Code mehr schreibe darf ich das ?
    In der Aufgabe stand nirgendswo etwas von Sicherheit dieser Art.

    Benutzereingaben müssen immer überprüft werden



  • Hammers jetzt? Die Frage des Threadstellers wurde doch längst beantwortet also hört doch auf euch gegenseitig zu Flamen 😃



  • @FreakY<3Cpp: Du redest dummes Zeug, aber nicht nur in diesem Beitrag. Auch C gegen C++. Du hast keine Ahnung, weil Du nur Code zusammen klatscht.

    http://de.wikipedia.org/wiki/Programmierstil

    Ließ Dir das mal durch FreakY<3Cpp. Lesen kannst Du doch oder? Nur mit dem verstehen und umsetzen hapert es...

    Gruß,

    Manni



  • Hallo,

    ihr verwechselt die ganze Zeit normale Zuweisungen mit anderem. Würde euch denn folgendes besser gefallen?

    textBox5.Text = Convert.ToString(
                                     Convert.Int32(textBox1.Text) +
                                     Convert.Int32(textBox2.Text)
                                    );
    

    @mogel, was verstehst du unter Überprüfung von Benutzereingaben? Soweit ich mich entsinne sollte, wie schon genannt, Convert entsprechende Exceptions werfen, die eine falsche Eingabe verhindern.
    @Selmer, in diesem Link sind eigentlich nur syntakische Gründe genannt, jedoch kann man z.B. bei dem Code(Zeile) von FreakY<3Cpp syntakisch nichts aussetzen und solche Beispiele, welche dort gezeigt werden, werden hier nicht genutzt, lediglich eine einfache Multiplikation von 2 Textboxen. Ich weiß nicht, ob ich es genauso gemacht hätte wie FreakY<3Cpp, aber wahrscheinlich schon, da dass nun wirklich keine große Nummer war.



  • @Einlauf: Das mit der Exception mag richtig sein, aber warum muss ich denn eine Exception forcieren wenn ich die Eingaben vorher validieren kann 😉



  • FreakY<3Cpp schrieb:

    CSL schrieb:

    1. Benutze double.TryParse um sicher zu sein das die Eingabe auch valides double ist, sonst macht es Peng, Qualm, Stink
    2. Setze korrekte CultureInfo als IFormatProvider, wenn nicht kannst du möglicherweise falsche Werte bekommen im Tausender Bereich.

    Convert sollte beides machen, zumindest das 2., da intern Parse aufgerufen wird mit der CultureInfo Überladung.

    Und woher will Convert die korrekte Culture wissen? Convert nimmt CultureInfo.CurrentCulture.

    Wenn die Convert zb in einen BackgroundWorker sitzt, wird die CurrentCulture nicht vom aufrufer geerbt, es muss explizit gesetzt werden, wenn das System ein Deutsches ist, die Applikation aber auf Englisch steht, hat man zwei unterschiedliche Cultures.

    Nächstes Beispiel, die Zahl wird in einer Datei gespeichert, im englischen Format, nun will ein deutsches System die Datei wieder einlesen, und ruft das Parse mit CurrentCulture auf, dann hast du den Salat.

    Um alle solche Fehler vor zu beugen: Immer Culture selber setzen um sicher zu sein das die richtige verwendet wird, sei es beim Parsen als auch beim Schreiben.


Anmelden zum Antworten