Nếu bạn sử dụng một đơn & (Và) phần thứ hai của biểu thức được đánh giá. Điều này có thể là xấu nếu phần thứ hai dựa vào phần đầu tiên là đúng sự thật. Thông thường, luôn sử dụng & & vì phần thứ hai không được đánh giá nếu phần đầu tiên là sai.
Về mặt logic, đơn & thực hiện thao tác bitwise như những người khác đã nói, vẫn còn hợp lệ để so sánh/đánh giá boolean. Thực sự chỉ có một thời gian duy nhất & (hoặc |) nên được sử dụng (hoặc boolean đánh giá) là nếu đánh giá thứ hai nên luôn luôn chạy (nếu nó là một cuộc gọi chức năng/sửa đổi). Đây là thực hành xấu thông qua và có lẽ lý do tại sao cuốn sách không đề cập đến nó.
Độc thân & hữu ích với cờ enums và mặt nạ bit.
Sau đây sẽ ném một ngoại lệ của obj là null:
bool b = obj != null & obj.IsActive
Nhưng điều này sẽ làm việc:
bool b = obj != null && obj.IsActive
này là xấu:
bool b = obj.IsActive && obj.SetActive(false);
bool b = obj.IsActive & obj.SetActive(false);
Nhà điều hành & là đây ở lại.
Nguồn
2008-11-13 04:35:02
Trong C# một đơn & làm việc như dự định. –
Tôi đã thử nó và trình biên dịch bị phàn nàn: Toán tử '&' không thể áp dụng cho các toán hạng kiểu 'int' và 'bool' – jpoh
Thats vì int không phải là giá trị 8 bit. Bạn cần phải đưa byte vào một int để làm cho nó hoạt động. – FlySwat