Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

C#-Operatoren

C# stellt einen großen Satz von Operatoren bereit, bei denen es sich um Symbole handelt, die angeben, welche Operationen in einem Ausdruck durchgeführt werden. Operationen für ganzzahlige Typen, zum Beispiel ==, !=, <, >, <=, >=, binary +, binary -, ^, &, |, ~, ++, -- und sizeof() sind im Allgemeinen für Enumerationen zulässig. Darüber hinaus können viele Operatoren durch den Benutzer überladen werden, wodurch sich ihre Bedeutung bei Anwendung auf einen benutzerdefinierten Typ ändert.

In der folgenden Tabelle werden die C#-Operatoren in der entsprechenden Rangfolge aufgelistet. Operatoren innerhalb einer Gruppe haben den gleichen Rang.

Die arithmetischen Operatoren (+, -, *, /) können Ergebnisse erzeugen, die sich außerhalb des zulässigen Wertebereichs für den betreffenden numerischen Typ befinden. Einzelheiten zu bestimmten Operatoren finden Sie im entsprechenden Abschnitt, grundsätzlich gilt aber:

  • Arithmetischer Überlauf bei ganzen Zahlen löst entweder eine OverflowException aus oder verwirft die höchstwertigen Bits des Ergebnisses. Division ganzer Zahlen durch Null löst immer eine DivideByZeroException aus.

  • Arithmetischer Überlauf oder Division durch 0 (null) löst bei Gleitkommazahlen nie eine Ausnahme aus, weil die Gleitkommatypen auf IEEE 754 basieren und daher Vorkehrungen für die Darstellung von Unendlich und NaN (Not a Number/Keine Zahl) aufweisen.

  • Arithmetischer Überlauf bei Decimal löst immer eine OverflowException aus. Dezimale Division durch Null löst immer eine DivideByZeroException aus.

Wenn ein Überlauf bei ganzen Zahlen auftritt, hängen die Auswirkungen vom Ausführungskontext ab, bei dem es sich um "checked" oder "unchecked" handeln kann. In einem "checked"-Kontext wird eine OverflowException ausgelöst. In einem "unchecked"-Kontext werden die höchstwertigen Bits verworfen, und die Ausführung wird fortgesetzt. Bei C# haben Sie die Wahl, einen Überlauf zu verarbeiten oder zu ignorieren.

Neben arithmetischen Operatoren können auch Konvertierungen zwischen ganzzahligen Typen (z. B. die Umwandlung von long nach int) einen Überlauf verursachen. Sie sind von der Ausführung (checked oder unchecked) abhängig. Bitweise Operatoren und Schiebeoperatoren verursachen allerdings nie einen Überlauf.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft