Có chuyện gì với điều này? Tôi làm một phép nhân đơn giản:Điều này có gây ra tràn không? Nó không!
Int64 x = 11111111111;
Int64 y = 11111111111;
Int64 z = x * y;
Và ở phần cuối của các nhân, z hiển thị giá trị:
-5670418394979206991
này đã tràn rõ ràng, nhưng không có ngoại lệ xảy ra. Tôi muốn một người được nêu ra, nhưng ...
Lưu ý rằng đây là trên Windows Phone 7, nhưng tôi không nghĩ rằng điều này có bất kỳ mang về vấn đề này. Hay không?
Lưu ý rằng lý do mà không được kiểm tra là mặc định là bởi vì (1) 99% số học số nguyên thời gian là hư không gần ranh giới, và (2) số học được kiểm tra là WAY chậm hơn. Đây là một trong những trường hợp hiếm hoi mà thiết kế của C# chọn nguy hiểm theo mặc định vì lý do hiệu suất. –
Máy x86 sử dụng một jno đơn giản, dự đoán nhánh luôn tốt, không thể tốn nhiều hơn một chu kỳ. –
Không phải là nó nhất thiết phải liên quan đến thiết kế của C# nhưng trong trường hợp cụ thể này chúng ta đang nói về ARM. Các hành vi của jitter x86 là hơi học tập – Stewart