Doppelpunkt hinter else - warum?

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von georgli.

    Doppelpunkt hinter else - warum?

    Hallo,
    ich bin frisch gebackener Visual Basic Anfänger und stoßeimmer wieder auf die Situation, dass mir der Codeeditor von VB express2010 in meine if-Abfragen Doppelpunkte einsetzt. Ich habe nun schon eine ganze Weile im Netz gesucht, aber ich finde keine richtige Erklärung dafür. Immerhin habe ich über MSDN herausgefunden, dass sich damit else-Anweisungen direkt hintereinanderhängen lassen, wenn sie in einer Zeile stehen, aber bei mir setzt er den Doppelpunkt mit vorgelagertem Leerschritt direkt hinter das Else. Gehört das so oder mache ich etwas falsch? Die Übungsprogrämmchen funktionieren zwar trotzdem aber ich habe diesen Doppelpunkt nie in Beispiellistings aufgefunden; irritiert mich ein wenig. Anbei noch mein Problemfall:

    VB.NET-Quellcode

    1. If optRot.Checked = True Then
    2. lbl1.Text = "rot"
    3. ElseIf optGrün.Checked = True Then
    4. lbl1.Text = "grün"
    5. Else : optBlau.Checked = True
    6. lbl1.Text = "blau"
    7. End If
    Hallo georgli,
    darfst Dich nicht verrückt machen lassen.
    Ist halt nur ne Abkürzung, Zeilenersparnis.

    Wenn Du wie gehabt den ":" weglässt dann
    muss halt die Anweisung hinter dem Else in eine neu Zeile.

    VB.NET-Quellcode

    1. Else
    2. optBlau.Checked = True


    Es ist beides richtig.

    mfg OnkelR
    Wenn man schon bei Zeilenabkürzungen ist:
    Ein _ am Ende einer Zeile verbindet diese mit der Folgenden Zeile um Sachen lesbarer zumachen, da man ja durch die Zeilen eingeschränkt wäre:

    VB.NET-Quellcode

    1. AufrufEinerTotalLangenFunktionMitVielenParametern( _
    2. Parameter1, _
    3. Parameter2, _
    4. Parameter3, _
    5. Parameter4, _
    6. Parameter5, _
    7. Parameter6, _
    8. Parameter7)

    Man muss aber beachten, dass dahinter kein Kommentar stehen darf (auf jeden Fall nicht mit einem VB9-Compiler, VB10 hab ich nie benutzt), denn es wird vermutlich einfach _[:white:]\n durch nichts ersetzt und dann würde ja ein Kommentar die folgenden Werte ausblenden und Fehler erzeugen. Wirst du aber vom Compiler drauf hingewiesen.