Les opérateurs d'incrémentations en VB .NET/C#
Il y a quelques semaines, une discussion a eu lieu sur l'implémentation d'opérateurs d'incrémentations (et décrémentations) en VB .NET pour Whidbey. Pour mémoire, C# les supporte depuis le début et c'est présenté comme un des nombreux avantages du langage. C# reconnait donc :
int x = 1;
x++;
Paul Vick (responsable du design du langage) et son équipe ont décidés de ne pas l'implémenter dans Whidbey. Ses explications n'étaient pas très claires mais il vient de trouver la solution dans le blog d'un membre de l'équipe du compilateur C# Luca Bolognese (viva las pastas!!! bon, ok c'était facile).
La question est donc : que vaut x a la fin de cette ligne ?
x += x++;
Personnellement, je suis mort de rire ;-) Si l'on essaye d'interpréter, on peut traduire cette ligne en :
x = x + x++;
ou
x = x++ + x;
Mais le résultat de ces deux lignes est différent !!!
Jetez donc un coup d'oeil sur l'explication complète de Luca. En tous les cas, son explication est claire :
"C'était pas prévu que vous écriviez ca, alors : N'ECRIVEZ PAS CA !!!"
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :