Operatoren

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von SeriTools.

    Hallo,

    haben diese Zeichen gleiche funktion?

    +
    &


    z.B.

    VB.NET-Quellcode

    1. Dim text as String = "Ergebnis: "Dim rechnung as Integer = 2 + 2
    2. 'Variante 1
    3. MessageBox.Show(text + rechnung, text, MessageBoxButtons.OK, MessageBoxIcon.Information)
    4. 'Variante 2
    5. MessageBox.Show(text & rechnung, text, MessageBoxButtons.OK, MessageBoxIcon.Information)


    Welche Variante ist richtig?

    Mfg F.
    Hey,

    zum Rechnen benutzt man + und um Strings zu verknüpfen &.

    VB.NET-Quellcode

    1. Dim A As String = "Hallo"
    2. Dim B As String = A & " wie gehts?"
    3. Dim Addieren As Integer = 4 + 4


    Auf dein Beispiel bezogen:

    VB.NET-Quellcode

    1. Dim text As String = "Ergebnis: "
    2. Dim rechnung As Integer = 2 + 2
    3. MessageBox.Show(text & CStr(rechnung))


    Oder in einer Zeile:

    VB.NET-Quellcode

    1. Dim text As String = "Ergebnis: " & CStr(CInt(4 + 4))
    Zum rechnen verwendet man +, um Strings zu verbinden ein &.
    Wenn du Strings mit + verknüft kann passieren, dass StrictOff denkt, es handelt sich um Zahlen ("543" + rechnung) und fängt an zu rechnen, anstatt die zeichenketten zu verknüpfen.

    Da man die Operatoren auch überschreiben bzw in eigene Klassen hinzufügen kann, gibt es einen Unterschied zwischen & und +. Bei reinen Strings fällt dieser Unterschied nicht auf, wer aber StrictOff proggt, hat eine Fehlerquelle mehr, denn der Compiler muss zur Laufzeit entscheiden, ob es sich nun um eine Zahl oder einen String handelt - und da sind die Operatoren andersbedeutend.

    @Kevin Hombre
    Cstr ist etwas unötig xD Da alles von Object erbt und somit die .toString-Funktion mitbringt kann man diese verwenden. Ist viel einfacher
    ja aber ich meine in der Ausgabe um die Elemente zu verknüpfen.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim stDown As String = "shutdown -f -s -t "
    3. ' & zum Verknüpfen
    4. Shell(stDown & TextBox.Text)
    5. ' oder + zum Verknüpfen
    6. Shell(stDown & TextBox.Text)
    7. End Sub



    oder erfühlen sie gleiche funktion?
    => zum verknüpfen von Strings benutze man &
    => zum rechnen verwendet man +

    Im speziellen Fall von Strings erfüllt der +-Operator die gleiche Funktion wie es der &-Operator tut. Trotzdem &-Verwenden, da Strings unter Strict Off als Zahl interpretiert werden könnten (vllt nicht bei dir, aber wenn du mal einen Code veröffentlichst?).
    Eigentlich würde "+" allein genügen, in C# genügt ja auch das "+".
    Da es aber in VB möglich ist, folgende Zeile zu schreiben:

    VB.NET-Quellcode

    1. Option Strict Off
    2. ' ...
    3. Dim xx = 5 [PLUS] TextBox1.Text
    muss man über das Operator-Zeichen dem Compiler sagen, was man will:

    VB.NET-Quellcode

    1. Dim txt = "5"
    2. Dim xx = 5 + txt ' = 10.0 (Double)
    3. Dim yy = 5 & txt ' = "55" (String)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    FreakJNS schrieb:

    Cstr ist etwas unötig xD Da alles von Object erbt und somit die .toString-Funktion mitbringt kann man diese verwenden. Ist viel einfacher

    Vor allem, da CStr - benutzt bei nicht schon bei Kompilierungszeit bekannten Werten - zu den Bösen Funktionen gehört.

    lg SeriTools
    | Keine Fragen per PN oder Skype.