2011-02-02 42 views
15

Tôi đã làm việc xung quanh với C# và nhận thấy rằng khi tôi có một số nguyên rất lớn và cố gắng làm cho nó lớn hơn. Thay vào đó ném một số loại lỗi tràn, nó chỉ đơn giản là đặt số lượng giá trị thấp nhất có thể (-2,147,483,648) tôi tin.C# Tràn không hoạt động? Làm thế nào để kích hoạt Kiểm tra tràn?

Tôi đã tự hỏi liệu có cách nào để bật kiểm tra tràn trong Visual Studio không?

Trả lời

30

Bạn có thể sử dụng các bước sau để kích hoạt Arithmetic Overflow/underflow kiểm tra trong Visual Studio:

  1. Nhấp chuột phải vào dự án của bạn trong Solution Explorer và chọn Properties.
  2. Trên tab Xây dựng, hãy nhấp vào nút Nâng cao. (Hướng về phía dưới cùng)
  3. Chọn hộp kiểm "Kiểm tra tràn/số học tràn".

này sẽ ném một System.OverflowException khi tràn xảy ra chứ không phải là nó hoạt động bình thường của việc thay đổi giá trị cho một giá trị tối thiểu.

Nếu không có số học Overflow/underflow được kích hoạt:

int test = int.MaxValue; 
test++; 
//Test should now be equal to -2,147,483,648 (int.MinValue) 

Với Arithmetic Overflow/underflow được kích hoạt:

int test = int.MaxValue; 
test++; 
//System.OverflowException thrown 

Sử dụng một khối kiểm tra:

checked 
{ 
    int test = int.MaxValue; 
    test++; 
    //System.OverflowException thrown 
} 

Tài liệu để kiểm tra có sẵn here. (Nhờ Sasha đã nhắc tôi về nó.)

+12

Bạn cũng có thể sử dụng từ khóa 'đã kiểm tra' để bọc một câu lệnh hoặc một bộ câu lệnh để chúng được kiểm tra rõ ràng về tràn số học. Việc thiết lập thuộc tính toàn dự án là một chút rủi ro vì thỉnh thoảng tràn là một kỳ vọng khá hợp lý. –

+2

Lưu ý rằng tùy chọn trình biên dịch này chỉ áp dụng khi không có ngữ cảnh 'checked' hoặc' unchecked' rõ ràng trong mã. Ngoài ra, nó sẽ ảnh hưởng đến kết quả thực thi, không chỉ gỡ lỗi trong Visual Studio. Xem tại đây để biết tài liệu: http://msdn.microsoft.com/en-us/library/h25wtyxf%28v=VS.100%29.aspx – Justin

+0

@Rionmonster và @Sasha - Tôi không biết về bất kỳ chức năng nào trong số hai chức năng đó . Cảm ơn cả hai nha. –

Các vấn đề liên quan