Ü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

Der Additionsoperator wird durch das Pluszeichen + dargestellt. Diesen Operator verwenden Sie, um zwei Werte zu addieren. 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.

  1. Geben Sie den folgenden Code in den .NET-Editor ein:

    int firstNumber = 12;
    int secondNumber = 7;
    Console.WriteLine(firstNumber + secondNumber);
    
  2. 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. 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 + " widgets.");
    
  2. 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 int 7, 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 öffnende und schließende Klammer genau wie in mathematischen Formeln den Operator, mit dem die Reihenfolge der Operationen festgelegt wird. 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 auch als Überladen eines Operators bezeichnet. Dabei leitet der Compiler auf Grundlage der Datentypen ab, welche Operationen durchgeführt werden sollen.
  • 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.