Autor Beitrag
henk
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 21.10.08 10:45 
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:

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

ausblenden C#-Quelltext
1:
if (blaa != null && blaa != "")					


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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
ausblenden 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:
ausblenden 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
ausblenden 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:
user profile iconhenk hat folgendes geschrieben Zum zitierten Posting springen:
VV net
Wie meinen :gruebel: ?

_________________
>λ=
henk Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 21.10.08 14:06 
Ahh, danke, dann ist das in C# schon ganz automatisch so. Ich komme von der alten VB6 Ecke, da wurden immer alle Parameter in den Ifs mit ausgewertet.

Feini feini :))