Khi nào chúng tôi phải sử dụng toán tử checked
trong C#?
Chỉ phù hợp để xử lý ngoại lệ?Khi nào chúng ta phải sử dụng toán tử đã chọn trong C#?
Trả lời
Bạn sẽ sử dụng checked
để bảo vệ chống lại một (im lặng) tràn trong một biểu thức.
Và sử dụng unchecked
khi bạn biết một luồng tràn vô hại có thể xảy ra.
Bạn sử dụng cả hai ở những nơi bạn không muốn dựa vào cài đặt trình biên dịch mặc định (toàn bộ dự án).
Cả hai biểu mẫu đều khá hiếm, nhưng khi thực hiện số học số nguyên quan trọng, bạn nên cân nhắc về tràn có thể.
Cũng lưu ý rằng họ có hai hình thức:
x = unchecked(x + 1); // (expression)
unchecked { x = x + 1;} // { statement(s) }
Từ The checked and unchecked operators
Các kiểm tra và vận hành được kiểm soát được sử dụng để kiểm soát tràn bối cảnh kiểm tra không thể thiếu loại phép tính số học và chuyển đổi.
Trong một bối cảnh kiểm tra, nếu một biểu tạo ra một giá trị mà nằm ngoài loạt các loại đích, các kết quả phụ thuộc vào việc biểu là hằng số hoặc không liên tục. Biểu thức không đổi gây ra lỗi thời gian biên dịch, trong khi biểu thức không liên tục được đánh giá khi chạy và tăng ngoại lệ.
Trong ngữ cảnh không được chọn, nếu biểu thức tạo ra giá trị là ngoài phạm vi đích đến , kết quả sẽ bị cắt bớt.
checked
sẽ giúp bạn nhặt System.OverFlowException
mà sẽ không được chú ý khác
int result = checked (1000000 * 10000000);
// Error: operation > overflows at compile time
int result = unchecked (1000000 * 10000000);
// No problems, compiles fine
checked
vs unchecked
cũng rất hữu ích trong những lúc bạn đang làm toán số nguyên. đặc biệt là các hoạt động gia tăng và bạn biết bạn sẽ tăng quá UInt32.MaxValue
và muốn nó hoạt động vô hại tràn ngược trở lại 0
.
- 1. Khi nào chúng ta phải sử dụng các toán tử ngầm và rõ ràng trong C#?
- 2. tại sao chúng ta thích? đến ?? toán tử trong C#?
- 3. Khi nào chúng ta sử dụng ANTLR
- 4. Tại sao chúng ta không sử dụng toán tử mới khi khởi tạo một chuỗi?
- 5. Khi nào chúng ta phải sử dụng từ khóa bí danh bên ngoài trong C#?
- 6. Chúng ta có nên đóng HttpPostedFile.Inputstream, khi chúng ta đã hoàn thành việc sử dụng nó?
- 7. Khi chúng ta phải sử dụng DBNull.Value, null và "" trong C# .Net?
- 8. Khi nào chúng ta nên sử dụng lớp học và khi chúng ta không nên
- 9. Tại sao chúng ta cần toán tử === đặc biệt này?
- 10. Tại sao chúng ta cần toán tử "delete []"?
- 11. Khi nào chúng ta nên sử dụng mutex và khi nào chúng ta nên sử dụng semaphore
- 12. Khi nào chúng ta sẽ sử dụng applicationContext.xml trong Spring?
- 13. Tại sao chúng ta cần sử dụng toán tử shift trong java?
- 14. khi nào chúng ta nên sử dụng instanceof và khi không phải
- 15. Khi nào chúng ta phải sử dụng NVARCHAR/NCHAR thay vì VARCHAR/CHAR trong SQL Server?
- 16. Chúng ta sử dụng toán tử đối tượng "->" trong PHP ở đâu?
- 17. Khi nào sử dụng toán tử "^"
- 18. Lịch add() vs roll() khi nào chúng ta sử dụng?
- 19. Tại sao chúng ta nên sử dụng mã hóa ui khi chúng ta có Specflow?
- 20. Tại sao chúng ta phải sử dụng biến trung gian cho @SuppressWarnings ("bỏ chọn")?
- 21. khi nào sử dụng === toán tử trong JavaScript?
- 22. MVC: tại sao chúng ta cần "điều khiển", hoặc khi nào chúng ta nên sử dụng mẫu này?
- 23. Chúng ta không thể sử dụng các phép toán nguyên tử cho các biến số dấu chấm động trong CUDA?
- 24. làm thế nào chúng ta có thể sử dụng một tập tin thực thi trong c + +?
- 25. Tại sao chúng ta sử dụng Response.ClearHeaders()?
- 26. Chúng ta có cần mfence khi sử dụng xchg
- 27. khi nào chúng ta cần mẫu Adapter?
- 28. Cách thay thế bằng cách sử dụng toán tử% và/Toán tử trong C++
- 29. Khi nào chúng ta sử dụng mô-đun ruby và sử dụng thành phần lớp học?
- 30. Khi nào nên sử dụng Class.isInstance() và khi nào thì sử dụng toán tử instanceof?
OK, đó là những gì họ đang có .. Bạn có thể giải thích khi bạn muốn làm điều đó không? – NotMe