Che succede, comunque? Faccio un semplice moltiplicazione:Non dovrebbe causare un Overflow? Non è così!
Int64 x = 11111111111;
Int64 y = 11111111111;
Int64 z = x * y;
E alla fine della moltiplicazione, z mostra un valore di:
-5670418394979206991
Questo ha chiaramente traboccato, ma nessuna eccezione è sollevata. Vorrei che ne venisse sollevato uno, ma ...
Si noti che questo è su Windows Phone 7, ma non penso che questo abbia alcun rapporto con il problema. O lo fa?
Si noti che il motivo per cui è deselezionata l'impostazione predefinita è perché (1) il 99% del tempo dell'aritmetica dei numeri interi non è affatto vicino ai limiti e (2) l'aritmetica verificata è SEMPRE più lenta. Questo è uno dei rari casi in cui il design di C# sceglie pericolosi per default per motivi di prestazioni. –
Il jitter x86 utilizza un jno semplice, la previsione del ramo è sempre buona, non può costare più di un singolo ciclo. –
Non che fosse necessariamente rilevante per il design di C# ma in questo caso specifico stiamo parlando di ARM. Il comportamento del jitter x86 è piuttosto accademico – Stewart