Opérateurs C#
Mise à jour : Juillet 2008
C# propose un large éventail d'opérateurs. Ces derniers sont des symboles qui spécifient les opérations à effectuer dans une expression. Les opérations sur les types intégraux tels que ==, !=, <, >, <=, >=, binary +, binary -, ^, &, |, ~, ++, -- et sizeof() sont autorisés en général sur les énumérations. En outre, de nombreux opérateurs peuvent être surchargés par l'utilisateur, ce qui modifie leur signification lorsqu'ils sont appliqués à un type défini par l'utilisateur.
Le tableau suivant répertorie les opérateurs C# groupés par ordre de priorité. Les opérateurs au sein de chaque groupe ont une priorité égale.
Catégorie d'opérateurs |
Opérateurs |
---|---|
Primaire |
|
Unaire |
|
Multiplicative |
|
Additive |
|
Décalage |
|
Relationnel et test de type |
|
Égalité |
|
AND logique |
|
XOR logique |
|
OR logique |
|
AND conditionnel |
|
OR conditionnel |
|
Conditionnel |
|
Assignation |
|
Fusion nulle |
|
Lambda |
Dépassement de capacité arithmétique
Les opérateurs arithmétiques (+, -, *, /) peuvent fournir des résultats qui sortent de la fourchette des valeurs possibles pour le type numérique concerné. Vous pouvez vous reporter à la section Référence du langage C# pour obtenir des informations sur un opérateur particulier, mais en général :
Le dépassement de capacité arithmétique d'entiers lève une exception OverflowException ou ignore les bits les plus significatifs du résultat. La division d'entiers par zéro lève toujours une exception DivideByZeroException.
Un dépassement de capacité arithmétique ou une division par zéro en virgule flottante ne lève jamais d'exception, car les types virgule flottante s'appuient sur IEEE 754 et gèrent la représentation de l'infini et NaN (Not a Number).
Le dépassement de capacité arithmétique décimal lève toujours une exception OverflowException. La division décimale par zéro lève toujours une exception DivideByZeroException.
En cas de dépassement de capacité d'entier, ce qui se produit dépend du contexte d'exécution, qui peut être checked ou unchecked. Dans un contexte vérifié (checked), une exception OverflowException est levée. Dans un contexte non vérifié (unchecked), les bits les plus significatifs du résultat sont ignorés et l'exécution se poursuit. Ainsi, C# vous offre le choix de traiter ou d'ignorer le dépassement de capacité.
Outre les opérateurs arithmétiques, les casts de type intégral vers type intégral peuvent générer un dépassement de capacité, par exemple, le cast d'une valeur long vers une valeur int et peuvent faire l'objet d'une exécution checked ou unchecked. Cependant, les opérateurs de bits et de décalage ne génèrent jamais de dépassement de capacité.
Voir aussi
Tâches
Surcharge d'opérateur, exemple
Concepts
Référence
Opérateurs surchargeables (Guide de programmation C#)
Autres ressources
Historique des modifications
Date |
Historique |
Raison |
---|---|---|
Juillet 2008 |
Opérateur ?? sorti de la catégorie Assignation, conformément à la suggestion d'un client |
Résolution des bogues de contenu. |