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