Điều này khiến tôi khá bối rối. Có lẽ tôi đang quá mệt mỏi ngay bây giờ.Hành vi lạ với toán tử có điều kiện trong .Net
Rectangle rectangle = new Rectangle(0, 0, image.Width, image.Height);
Rectangle cropArea = inputArea == null ? rectangle : inputArea.Value;
if (inputArea == null)
cropArea = rectangle;
đầu vàoArea là một hình chữ nhật không có giá trị, trong trường hợp cụ thể của tôi là null.
Hai câu lệnh đầu tiên mang lại một cropArea được khởi tạo thành 0. Thứ hai, tuy nhiên, tạo ra cropArea đúng dựa trên chiều rộng và chiều cao của hình ảnh. Tôi đã hiểu lầm bất cứ điều gì với các nhà điều hành có điều kiện? Có vẻ như nó không trả về hình chữ nhật khi inputArea = null? Có bất kỳ quirks khi làm việc với các loại giá trị?
EDIT: Được rồi, tôi đã thử lần đầu tiên: khởi động lại VS. Có vẻ như trình gỡ lỗi đã nói dối tôi, hay cái gì đó. Dù sao, hoạt động ngay bây giờ. Cảm ơn.
Tôi nghĩ về việc để nó như một gợi ý cho bất kỳ ai khác mà khởi động lại VS luôn có thể giải quyết các vấn đề bất ngờ. Bạn nghĩ sao? – Max
Ai là địa ngục downvoted câu hỏi này ??? Nó là một câu hỏi hoàn toàn hợp lệ phơi bày một lỗi khủng khiếp trong Visual Studio. –
Là một sang một bên, lưu ý rằng bạn có thể sử dụng toán tử kết hợp null thay vì toán tử điều kiện ở đây: croparea = inputArea ?? hình chữ nhật; –