Quoi de neuf avec ça, quand même? Je fais une simple multiplication:Cela ne devrait-il pas provoquer un débordement? Ce n'est pas le cas!
Int64 x = 11111111111;
Int64 y = 11111111111;
Int64 z = x * y;
Et à la fin de la multiplication, z représente une valeur de:
-5670418394979206991
Cela a clairement débordé, mais aucune exception est soulevée. J'aimerais que l'un d'entre eux soit surélevé, mais ...
Notez que c'est sur Windows Phone 7, mais je ne pense pas que cela ait une influence sur le problème. Ou est-ce?
Notez que la raison pour laquelle cette case n'est pas cochée est la suivante: (1) 99% de l'arithmétique des nombres entiers ne sont pas proches des limites et (2) l'arithmétique vérifiée est WAY plus lente. C'est l'un des rares cas où la conception de C# choisit dangereux par défaut pour des raisons de performances. –
La gigue x86 utilise un jno simple, la prédiction de branche est toujours bonne, ne peut pas coûter plus d'un seul cycle. –
Ce n'était pas nécessairement pertinent pour la conception de C#, mais dans ce cas précis, nous parlons d'ARM. Le comportement de la gigue x86 est un peu académique – Stewart