Maîtriser les opérateurs C# : guide complet avec tableaux et exemples
Un opérateur est un symbole qui indique au compilateur d'effectuer des manipulations mathématiques ou logiques spécifiques. C# dispose d'un riche ensemble d'opérateurs intégrés classés comme suit :
- Opérateurs arithmétiques
- Opérateurs relationnels
- Opérateurs logiques
- Opérateurs bit à bit
- Opérateurs d'assignation
- Opérateurs divers
Opérateurs arithmétiques
Supposons que la variable A vaut 10 et B vaut 20 :
| Opérateur | Description | Exemple |
|---|---|---|
+ | Additionne deux opérandes | A + B = 30 |
- | Soustrait le second opérande du premier | A - B = -10 |
* | Multiplie les deux opérandes | A * B = 200 |
/ | Divise le numérateur par le dénominateur | B / A = 2 |
% | Modulo (reste de la division entière) | B % A = 0 |
++ | Incrémentation (augmente de 1) | A++ = 11 |
-- | Décrémentation (diminue de 1) | A-- = 9 |
Opérateurs relationnels
Toujours avec A=10, B=20 :
| Opérateur | Description | Exemple |
|---|---|---|
== | Vérifie l'égalité | (A == B) est faux |
!= | Vérifie l'inégalité | (A != B) est vrai |
> | Supérieur strict | (A > B) est faux |
< | Inférieur strict | (A < B) est vrai |
>= | Supérieur ou égal | (A >= B) est faux |
<= | Inférieur ou égal | (A <= B) est vrai |
Opérateurs logiques
Supposons A=true, B=false :
| Opérateur | Description | Exemple |
|---|---|---|
&& | ET logique : vrai si les deux opérandes sont vrais | (A && B) est faux |
|| | OU logique : vrai si au moins un opérande est vrai | (A || B) est vrai |
! | NON logique : inverse l'état logique | !(A && B) est vrai |
Opérateurs bit à bit
Travaillent sur les bits individuellement. Tables de vérité pour &, |, ^ :
| p | q | p & q | p | q | p ^ q |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 |
Si A = 60 (0011 1100) et B = 13 (0000 1101) :
A & B = 0000 1100 (12)
A | B = 0011 1101 (61)
A ^ B = 0011 0001 (49)
~A = 1100 0011 (-61 en complément à 2)
| Opérateur | Description | Exemple |
|---|---|---|
& | ET bit à bit | (A & B) = 12 |
| | OU bit à bit | (A | B) = 61 |
^ | OU exclusif bit à bit | (A ^ B) = 49 |
~ | Complément à 1 (inversion bits) | (~A) = -61 |
<< | Décalage vers la gauche | A << 2 = 240 |
>> | Décalage vers la droite | A >> 2 = 15 |
Opérateurs d'assignation
| Opérateur | Description | Exemple |
|---|---|---|
= | Assignation simple | C = A + B |
+= | Addition et assignation | C += A ≡ C = C + A |
-= | Soustraction et assignation | C -= A ≡ C = C - A |
*= | Multiplication et assignation | C *= A ≡ C = C * A |
/= | Division et assignation | C /= A ≡ C = C / A |
%= | Modulo et assignation | C %= A ≡ C = C % A |
<<= | Décalage gauche et assignation | C <<= 2 ≡ C = C << 2 |
>>= | Décalage droite et assignation | C >>= 2 ≡ C = C >> 2 |
&= | ET bit à bit et assignation | C &= 2 ≡ C = C & 2 |
^= | OU exclusif et assignation | C ^= 2 ≡ C = C ^ 2 |
|= | OU bit à bit et assignation | C |= 2 ≡ C = C | 2 |
Opérateurs divers
| Opérateur | Description | Exemple |
|---|---|---|
sizeof() | Retourne la taille d'un type | sizeof(int) = 4 |
typeof() | Retourne le type d'une classe | typeof(StreamReader) |
& | Adresse d'une variable | &a |
* | Pointeur vers variable | *a |
? : | Expression conditionnelle (ternaire) | Condition ? X : Y |
is | Vérifie le type d'un objet | if (Ford is Car) |
as | Cast sans exception si échec | obj as StringReader |
Priorité des opérateurs en C#
La priorité détermine le regroupement des termes dans une expression. Les opérateurs de priorité plus élevée sont évalués en premier.
Exemple : x = 7 + 3 * 2 → x = 13 (pas 20), car * a priorité sur +.
| Catégorie | Opérateurs | Associativité |
|---|---|---|
| Postfixe | () [] -> . ++ -- | Gauche → Droite |
| Unaire | + - ! ~ ++ -- (type)* & sizeof | Droite → Gauche |
| Multiplicatif | * / % | Gauche → Droite |
| Additif | + - | Gauche → Droite |
| Décalage | << >> | Gauche → Droite |
| Relationnel | < <= > >= | Gauche → Droite |
| Égalité | == != | Gauche → Droite |
| ET bit à bit | & | Gauche → Droite |
| OU exclusif bit à bit | ^ | Gauche → Droite |
| OU bit à bit | | | Gauche → Droite |
| ET logique | && | Gauche → Droite |
| OU logique | || | Gauche → Droite |
| Conditionnel | ?: | Droite → Gauche |
| Assignation | = += -= *= /= %= >>= <<= &= ^= |= | Droite → Gauche |
| Virgule | , | Gauche → Droite |
Langue C
- Opérateurs C# — Guide complet des opérateurs en C#
- Maîtriser les opérateurs bit à bit et de décalage en C# : Guide complet
- Maîtriser les opérateurs C++ : Guide complet avec exemples pratiques
- Maîtriser les opérateurs en programmation C : Guide complet
- Maîtriser les opérateurs Python : Guide complet
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Maîtriser les opérateurs bit à bit en C : ET, OU, XOR, décalages et complément
- Opérateurs Verilog : Arithmétiques et de contrôle essentiels pour la synthèse
- Essentiels Java : Guide Complet des Opérateurs de Base