if Abfrage kleiner machen mit dem ?-Operator?

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von CensoredAlpaca.

    if Abfrage kleiner machen mit dem ?-Operator?

    Guten Tag,

    Ich verstehe den "?" Operator nicht ganz und wollte mich in diesem Forum mal erkundigen, da ich hier wunderbare Antworten erhalten habe. Ich habe mich natürlich selbst darüber erkundigt und ich muss zugeben: Ich verstehe es einfach nicht und brauche wohl einfach ein Beispiel für mein kleines Hirn.

    C#-Quellcode

    1. if (main.cbSC.IsChecked == true) cfgSC = "1"; else { cfgSC = "0"; } ;


    So sieht mein One-Leiner aktuell aus. Ich weiß, absolut schrecklich. Und deshalb habe ich mich erkundigt, wie man dies sauberer machen könnte und ich verstehe es absolut nicht. Ich habe mich unter Anderem hier erkundigt: docs.microsoft.com/en-us/dotne…tors/conditional-operator Jedoch tue ich mich wirklich schwer mit dem Verständnis.


    Mit freundlichen Grüßen!

    verschoben in den allgemeinen Bereich, da es »nur« um eine Kombination aus C#-Sprachbesonderheit in Kombination mit einem .NET-Feature geht ~VaporiZed

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Vielen Dank, ich habe es auf Anhieb verstanden. Leider erhalte ich jedoch diesen Fehler:


    Ich habe aus Sicherheit auch einmal isChecked in String umgewandelt, falls der Operator dies möchte, aber dies hat auch nicht funktioniert.

    Edit: Ich habe den Fehler sofort nach dem Post verstanden. Ich habe "isChecked" in bool umgewandelt, nun klappt alles einwandfrei. Vielen Dank.
    nun hat es aber seinen Grund, dass bool und bool? verschiedene Datentypen sind.
    Informiere dich mal über Nullable<T> - am besten aus einem guten Buch.

    Weil einfach einen bool? nach bool konvertieren geht nur solange gut, wie im bool? auch wirklich ein bool drinne ist.
    Es kann aber auch null sein, und dann gibts eine Exception.

    Informiere dich mal über Nullable<T> - am besten aus einem guten Buch.
    Und schau dir im ObjectBrowser die Nullable<T>-Struct an, was die an Funktionalität bietet, um sachgerecht mit dieser dreiwertigen logik (true, false, null) umzugehen.
    @CensoredAlpaca: Hat das was mit WPF zu tun? Ansonsten wandert das Thema woanders hin.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed In WPF funktionieren die Controls ein wenig anders und da ich in WPF programmiere und die .isChecked Funktion in C# anders heißt, füge ich es in diese Sektion hinzu. Ich hoffe, dass war die richtige Entscheidung.

    @ErfinderDesRades Vielen Dank für deine ausführliche Antwort. Ich werde mir das aufschreiben und nach einem WPF Tutorial (was auch mal Zeit wurde) abhaken. :)