Opérateurs C#

C# propose un large éventail d'opérateurs. Ces derniers sont des symboles qui spécifient les opérations à effectuer dans une expression.Opérations sur les types intégraux tels que ==, !=, <, >, <=, >=, binary +, binary -, ^, &|, ~, ++, --, and 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

x.y

f(x)

a[x]

x++

x--

new

typeof

coché

unchecked

default(T)

délégué

sizeof

->

Unaire

+x

-x

! X

~x

++x

--x

(T)x

attendez

&x

*x

Multiplicative

X est *

X ou y

% X et y

Additive

X + y

x/y de

Shift

X << y

X >> y

Relationnel et test de type

X < y

X > y

X <= y

X >= y

est

as

Égalité

X == y

X ! = y

AND logique

X et y

XOR logique

X ^ y

OR logique

X | y

AND conditionnel

X && y

OR conditionnel

X || y

Fusion nulle

X ? ?y

Conditionnel

?:

Assignation et expression lambda

x = y

X + y

X )= y

X *= y

X/= y

X %= y

X &= y

X |= y

X ^= y

X <<= y

X >>= y

=>

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

Référence

Opérateurs surchargeables (Guide de programmation C#)

Mots clés C#

Concepts

Guide de programmation C#

Autres ressources

Référence C#

Visual C#