Einführung in C#
Operatoren in C#
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.
- (negatives Vorzeichen)
Gibt einem numerischen Wert ein negatives Vorzeichen.
int i = -5; // i erhält den Wert -5 int n = -i; // n erhält den Wert 5
+ (Addition)
Addiert die Werte zweier Operanden und gibt das Ergebnis zurück.
int i = 5; int n = i + 7;
- (Subtraktion)
Subtrahiert die Werte zweier Operanden und gibt das Ergebnis zurück.
int i = 5; int n = i - 7;
* (Multiplikation)
Multipliziert die Werte zweier Operanden und gibt das Ergebnis zurück.
int i = 5; int n = 2 * i;
/ (Division)
Dividiert die Werte zweier Operanden und gibt das Ergebnis zurück.
Bei der Division von Ganzzahlen fällt ein eventueller Rest weg, wird also nicht gerundet.
int i = 10 / 3; // i erhält den Wert 3
% (Modulo)
Dividiert die Werte zweier Operanden und gibt den Divisionsrest zurück.
Dieser Operator kann nur auf ganzzahlige Operanden angewendet werden.
int i = 10 % 3; // i erhält den Wert 1 (also Rest = 1) int i = 9 % 3; // i erhält den Wert 0 (also Rest = 0)
Zuweisungen
++ (Inkrement)
Erhöht den Wert seines Operanden um 1.
i = 4; i++; // i hat den Wert 5
Bezüglich der Priorität unterscheidet man zwischen Postfix- und Präfix-Notation.
Die Postfix-Notation ( i++ ) hat dabei eine höhere Priorität als die Präfix-Notation ( ++i ).
-- (Dekrement)
Vermindert den Wert seines Operanden um 1.
i = 2; i--; // i hat den Wert 1
Bezüglich der Priorität unterscheidet man auch hier zwischen Postfix- und Präfix-Notation.
= (Zuweisung)
Weist seinem linken Operanden den Wert des rechten Operanden zu.
a = b;
Kombinierte Zuweisungsoperatoren
Die kombinierten Zuweisungsoperatoren kombinieren den Zuweisungsoperator mit einem anderen Operator:
+=
-=
*=
/=
%=
&=
<<=
>>=
^=
|=
Dabei wird der linke Operator sowohl als linker Operator für die Zuweisung als auch für den anderen Operator verwendet.
a += b;
bedeutet also
a = a + (b);
Die Klammer um das b soll verdeutlichen, dass der gesamte rechte Ausdruck zuerst berechnet wird.
Vergleiche
== (Gleichheit)
Ergibt den boolschen Wert true, wenn die beiden Operanden gleich sind, sonst false.
!= (Ungleichheit)
Ergibt den boolschen Wert true, wenn die beiden Operanden ungleich sind, sonst false.
<= (kleiner oder gleich)
Ergibt den boolschen Wert true, wenn der linke Operand kleiner oder gleich dem rechten ist, sonst false.
>= (größer oder gleich)
Ergibt den boolschen Wert true, wenn der linke Operand größer oder gleich dem rechten ist, sonst false.
< (kleiner)
Ergibt den boolschen Wert true, wenn der linke Operand kleiner als der rechte ist, sonst false.
> (größer)
Ergibt den boolschen Wert true, wenn der linke Operand größer als der rechte ist, sonst false.
Aussagenlogik
&& (Und-Verknüpfung)
Verknüpft die beiden Operanden und gibt true zurück, wenn beide Operanden den Wert true haben, sonst false.
true
true
-----
true
Kann das Ergebnis bereits vorhergesagt werden, nachdem der erste Operand ausgewertet wurde (dh, wenn dieser false ist, ist das Ergebnis sicher false), wird der zweite Operand nicht mehr ausgewertet.
|| (Oder-Verknüpfung)
Verknüpft die beiden Operanden und gibt true zurück, wenn einer der beiden Operanden den Wert true hat, sonst false.
true
false
------
true
Kann das Ergebnis bereits vorhergesagt werden, nachdem der erste Operand ausgewertet wurde (dh, wenn dieser true ist, ist das Ergebnis sicher true), wird der zweite Operand nicht mehr ausgewertet.
! (Negierung)
Invertiert den Wert seiner Operanden. Aus true wird false - und umgekehrt.
true
-----
false
Bitmanipulation
& (bitweise Und-Verknüpfung)
Verknüpft jedes Bit beider Operanden.
1100
1010
-------
1000
| (bitweise Oder-Verknüpfung)
Verknüpft jedes Bit beider Operanden.
1100
1010
-------
1110
^ (exklusive Oder-Verknüpfung)
Verknüpft jedes Bit beider Operanden.
1100
1010
-------
0110
~ (bitweise Negation)
Negiert den Wert jedes Bits.
10
---
01
<< (Linksverschiebung)
Verschiebt die Bits des linken Operanden um die durch den rechten Operanden angegebene Anzahl von Stellen nach links.
int i = 1; // dual: 00000001 int n = i << 1; //dual: 00000010 = 2
>> (Rechtsverschiebung)
Verschiebt die Bits des linken Operanden um die durch den rechten Operanden angegebene Anzahl von Stellen nach rechts.
int i = 5; //dual: 00000101 int n = i >> 1; //dual: 00000010 = 2