Übung: Durchführen einer Addition mit impliziter Datenkonvertierung

Abgeschlossen

Mathematische Operationen sind häufig für numerische Daten erforderlich. In dieser Lerneinheit befassen Sie sich zuerst mit der Addition, da Sie hier wichtige Informationen darüber erhalten, wie der C#-Compiler Code analysiert und interpretiert. In der nächsten Lerneinheit werden dann weitere Operationen behandelt.

Addieren zweier numerischer Werte

Um zwei Zahlen zusammen hinzuzufügen, verwenden Sie den Zusatzoperator, der das Pluszeichen +ist. Dabei handelt es sich um das gleiche Pluszeichen +, das auch zur Zeichenfolgenverkettung verwendet wird. Wenn ein Zeichen für unterschiedliche Aufgaben wiederverwendet wird, wird dies manchmal auch als Überladen bezeichnet. In C# werden überladene Operatoren häufig verwendet.

Im vorliegenden Fall versteht der C#-Compiler, welche Aufgabe Sie ausführen möchten. Er analysiert Ihren Code und stellt fest, dass das + (der Operator) von zwei numerischen Werten umgeben ist (die Operanden). Anhand der Datentypen der Variablen (beides sind int-Werte) weiß der Compiler, dass Sie diese beiden Werte hinzufügen wollten.

Ein C#-Code-Editor steht direkt im Browser zur Verfügung: C#-Code-Editor. Dieser Editor bietet eine einfache Umgebung zum Schreiben, Ausführen und Testen von C#-Code, ohne software auf Ihrem lokalen Computer installieren zu müssen.

  1. Öffnen Sie den C#-Code-Editor in einem neuen Browserfenster oder einer neuen Registerkarte.

    Sie können die Browserfenster nebeneinander positionieren, damit Sie sich auf diese Anweisungen beziehen können, während Sie im C#-Code-Editor arbeiten.

  2. Geben Sie den folgenden Code in den C#-Code-Editor ein:

    int firstNumber = 12;
    int secondNumber = 7;
    Console.WriteLine(firstNumber + secondNumber);
    
  3. Führen Sie den Code aus, sodass das folgende Ergebnis in der Ausgabekonsole angezeigt wird:

    19
    

Verwenden unterschiedlicher Datentypen, um implizite Typkonvertierungen zu erzwingen

Was geschieht, wenn Sie versuchen, das +-Zeichen mit den string- und int-Werten zu verwenden?

  1. Entfernen Sie den gesamten Code, den Sie zuvor geschrieben haben.

  2. Geben Sie den folgenden Code in den C#-Code-Editor ein:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + widgetsSold + " widgets.");
    
  3. Führen Sie den Code aus, sodass das folgende Ergebnis in der Ausgabekonsole angezeigt wird:

    Bob sold 7 widgets.
    

In diesem Fall versteht der C#-Compiler, dass Sie das +-Zeichen verwenden möchten, um die beiden Operanden zu verketten. Diese Schlussfolgerung basiert darauf, dass das +-Zeichen von Operanden mit den Datentypen string und int umgeben ist. Daher wird versucht, die int-Variable widgetsSold implizit temporär in eine string-Variable zu konvertieren, damit der Rest der Zeichenfolge verkettet werden kann. Der C#-Compiler unterstützt Sie nach Möglichkeit immer. Idealerweise sollten Sie Ihre Absichten jedoch explizit formulieren.

Durchführen komplexerer Additionen von Zahlen und Verkettungen von Zeichenfolgen

  1. Passen Sie den geschriebenen Code so an, dass er mit dem folgenden Code übereinstimmt:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + widgetsSold + 7 + " widgets.");
    
  2. Führen Sie den Code aus, sodass das folgende Ergebnis in der Ausgabekonsole angezeigt wird:

    Bob sold 77 widgets.
    

Der Compiler addiert die int-Variable widgetsSold nicht mit dem Literal int7, sondern verkettet alle Elemente zu einer Zeichenfolge.

Hinzufügen von Klammern, um dem Compiler Ihre Absicht zu verdeutlichen

  1. Passen Sie den geschriebenen Code so an, dass er mit dem folgenden Code übereinstimmt:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + (widgetsSold + 7) + " widgets.");
    
  2. Führen Sie den Code aus, sodass das folgende Ergebnis in der Ausgabekonsole angezeigt wird:

    Bob sold 14 widgets.
    

Die Klammern () werden nun zu einem weiteren überladenen Operator. In diesem Fall bilden die öffnenden und schließenden Klammern die Reihenfolge des Operationsoperators , genau wie in einer mathematischen Formel. Sie geben an, dass Sie die innersten Klammern zuerst auflösen möchten, was dazu führt, dass der Wert der int-Variablen widgetsSold mit dem Wert 7 addiert wird. Anschließend wird das Ergebnis implizit in eine Zeichenfolge konvertiert, sodass es mit dem verbleibenden Teil der Meldung verkettet werden kann.

Hinweis

Sie sollten es vermeiden, in einer einzigen Codezeile eine Berechnung und eine Verkettung auszuführen. Hier soll erläutert werden, wie sie Operatoren und Operanden so sehen können wie der Compiler.

Zusammenfassung

Hier sehen Sie, was Sie bisher über mathematische Operationen in C# gelernt haben:

  • Sie können Zahlen mithilfe einer mathematischen Operation addieren.
  • Das Pluszeichen + wird sowohl für die Verkettung von Zeichenfolgen als auch für die Addition verwendet. Dies wird als Überladung eines Operators bezeichnet, und der Compiler leitet die richtige Verwendung basierend auf den Datentypen ab, auf der sie ausgeführt wird.
  • Der C#-Compiler konvertiert nach Möglichkeit den Datentyp int in string, wenn offensichtlich ist, dass ein Entwickler versucht, die Zeichenfolgendarstellung einer Zahl zu verketten und auszugeben.
  • Sie verwenden Klammern, um eine Reihenfolge von Vorgängen festzulegen und dem Compiler damit explizit mitzuteilen, dass Sie bestimmte Operationen vor anderen Operationen ausführen möchten.