Langage C# – A propos des opérateurs ++ et – –

En C#, pour incrémenter et décrémenter une variable de type numérique, nous pouvons respectivement utiliser les opérateurs ++ et –. Ces opérateurs sont utilisables de deux manières : en préfixant ou suffixant une variable. Par exemple, si i est une variable de type int, alors nous pouvons écrire ++i et i++ ; –i et i–.
La question que je pose dans cet article est le suivante : les instructions ++i et i++ ont-elles toujours le même comportement ? A première vue, la réponse est affirmative si nous les utilisons simplement pour incrémenter ou décrémenter la valeur contenue dans la variable i. Mais quand est-il lorsque nous l’utilisons dans une instruction pour exécuter des traitements ou dans une affectation ? Voici un exemple :

int i = 10;
int j = ++i;

A l’issue de l’exécution de ce bloc de code, quelles sont les valeurs des variables i et j ? i et j valent 11.
Autre exemple :

int i = 10;
int j = i++;

A l’issue de l’exécution de ce bloc de code, quelles sont les valeurs des variables i et j ? i vaut 11 et j vaut 10.

Pourquoi cette différence ?

Les opérateurs – – et ++ sont toujours prioritaires sur l’opérateur d’affectation. La seule différence entre la pré-incrémentation (par exemple ++i) ou post-incrémentation (par exemple i++) réside dans la valeur de retour de l’opérateur.

Par exemple, dans une post-incrémentation, la valeur est bien modifiée à l’appel de l’incrément, mais sa valeur est renvoyée avant incrément, puis cette valeur est utilisée dans l’opération d’affectation.

About: James RAVAILLE

Travaillant avec la plateforme Microsoft .NET depuis 2002, j’alterne les missions de formation et d’ingénierie avec cette plateforme. J’écris ce blog pour transmettre mes connaissances à tout développeur, qu’il soit débutant ou expérimenté.