Frage von xD4N4LUSKx, 24

Visual Studio ( VB ) - Wieso tritt dieser Fehler bei der If-Abfrage auf?

Ich möchte eine If-Abfrage starten nachdem ich auf einen Knopf drücke. Ich möchte Abfragen ob Textfelder leer sind oder nicht. Ich möchte nicht Fragen ob beide leer sind, oder jedoch bekomme ich einen Fehler bei der Trennung dieser Textfelder.

    If TextBox1.Text Or TextBox2.Text = "" Then

Fehler: "Ein Ausnahmefehler des Typs "System.InvalidCastException" ist in Microsoft.VisualBasic.dll aufgetreten.

Zusätzliche Informationen: Ungültige Konvertierung von der Zeichenfolge in Typ Boolean." ' GuteFrage

    Else
        Dim Zähler_Loop As Integer = 0


        If Zähler_Loop = 1 Then
            '                   GuteFrage

            Zähler_Loop = 1
        Else
            '                  GuteFrage
        End If
    End If
Antwort
von xdxderich, 22

Das ganze muss folgendermaßen aussehen : 

If Textbox1.Text = "" Or Textbox2.Text = "" Then

Ich hoffe, du erkennst den Unterschied, zu deiner ursprünglichen Version.

Kommentar von xD4N4LUSKx ,

Ja erkenne es, ist ja umständlich.. aber was soll man machen

Dankeschön :-D

Kommentar von Wiggums ,

Das ist nicht umständlich sondern unmissverständlich.

TextBox1.Text Or TextBox2.Text = ""

Würde sinngemäß bedeuten, dass er zuerst den Vergleich zwischen TextBox2.Text und "" ausführt (zweimal String), da kommt dann je obs zutrifft ein TRUE oder FALSE raus. Heißt ein BOOLEAN.

TextBox1.Text Or (TextBox2.Text = "")

Dannach wird das Ergebnis mit TextBox1.Text (String) ins Oder genommen. Also z.B.:

If Textbox1.Text = "" Or True Then

Und er kann einen String (TextBox1.Text) nicht in einen Wahrheitswert (Boolean) konvertieren um es zu vergleichen. Deswegen der Fehler.

In nicht so stark typisierten Programmiersprachen würde der Code sogar funktionieren, da die davon ausgehen, dass alles was "nichts", null, leer, 0 ist == false ist. Also da wäre ein leerer String == false.

Die Folge wäre dann: Or würde bedeuten eine Seite müsste wahr sein, also entweder steht was in TextBox1 drin oder in Textbox2 nicht oder beide Bedingungen treffen zu.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten