Điều này không được cho phép vì không rõ ý nghĩa của null trong ngữ cảnh có điều kiện.
Nullable Booleans
có thể được truyền thành bool
một cách rõ ràng để được sử dụng trong điều kiện, nhưng nếu đối tượng có giá trị nếu null, InvalidOperationException
sẽ bị ném.
Do đó, điều quan trọng là phải kiểm tra thuộc tính HasValue trước khi truyền tới bool
.
Sử dụng như
var pospurcahsed= (ispurchased.HasValue && ispurchased.Value) ?......
Nullable Booleans tương tự như các loại biến Boolean được sử dụng trong SQL. Để đảm bảo rằng các kết quả được tạo ra bởi & và | nhà khai thác đang phù hợp với kiểu Boolean ba giá trị của SQL, các nhà khai thác được xác định trước sau được cung cấp:
bool? operator &(bool? x, bool? y)
bool? operator |(bool? x, bool? y)
hoặc bạn có thể sử dụng martin
gợi ý GetValueOrDefault
[Nhờ martin để trỏ nó ra]
Phương thức GetValueOrDefault trả về một giá trị ngay cả khi thuộc tính HasValue
là sai (không giống như thuộc tính Giá trị, mà ném một ngoại lệ).
Đó không phải là thông báo lỗi tôi nhận được, tôi nói 'Không thể mặc nhiên chuyển đổi loại 'bool?' để 'bool'. Một chuyển đổi rõ ràng tồn tại (bạn đang thiếu một diễn viên?) 1' –
@George Duckett xin lỗi vì lỗi typo. – Andrew