henk - Di 21.10.08 10:45
Titel: If oder doppel If
Meine nächste Frage ist.
Ich habe im Net Buch mal gelesen, dass es eine neue IF bedingung gibt.
Nur in C# weiß ich nicht wie das aussehen soll.
Eigentlich schreibt man doch sowas ähnliches wie:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| public bool testFunction(string blaa) { if (blaa != null)
{ if (blaa != "") {
usw ... |
Ich las aber mal, in einem Net Buch, das es möglich ist eine IF_Bedingung so aufzubauen, das erst die erste Bedingung erfüllt sein muss, bervor die nächste geprüft wird usw , und das in einer einzige IF Bedingung. Nur wie schreibt man das oder ist das ein Featur von VV net.
Was fehlt?
C#-Quelltext
1:
| if (blaa != null && blaa != "") |
Moderiert von
Christian S.: C#-Tags hinzugefügt
Kha - Di 21.10.08 12:43
Du meinst wohl die "Shortcut"-Operatoren &&, || und ^^. Mit if selbst hat das nichts zu tun, das sind einfach Erweiterungen der logischen (=Bool-)Operatoren.
Ein kleines Beispiel: Eine Abfrage wie
C#-Quelltext
1:
| if (o != null & o.IsValid()) ... |
ist äußerst ungeschickt, denn es werden immer beide Ausdrücke, der Vergleich und der Methodenaufruf, ausgewertet. Wenn nun aber o null ist, knallts beim Aufruf von IsValid.
Bei
o != null && o.IsValid() wird der zweite Ausdruck gar nicht mehr ausgewertet, wenn der erste schon false ergab, denn
false & y kann für kein y true werden. Umschreiben kann man diesen Ausdruck mit verschachtelten ifs, wie du es schon selbst gezeigt hast:
C#-Quelltext
1: 2:
| if (o != null) if (o.IsValid()) ... |
Und noch ein Beispiel für den Oder-Operator:
x || y lässt sich auch schreiben als
x ? true : y. Gut, wenn dir der ternäre Operator ?: nichts sagt, wird dir das nicht viel bringen ;) .
Alles in allem: Deine Zeile
C#-Quelltext
1:
| if (blaa != null && blaa != "") |
sollte eigentlich funktionieren. In diesem Fall kannst du es aber noch zu
if (!string.IsNullOrEmpty(blaa)) vereinfachen.
PS:
henk hat folgendes geschrieben : |
| VV net |
Wie meinen :gruebel: ?