Tôi đang trích xuất một giá trị bool
từ một bộ sưu tập (không chung chung, hetrogeneous).Làm thế nào để an toàn cast một System.Object vào một `bool` trong C#?
Nhà điều hành as
chỉ có thể được sử dụng với các loại tài liệu tham khảo, vì vậy nó không thể làm sử dụng as
thử một an toàn-cast để bool
:
// This does not work: "The as operator must be used with a reference type ('bool' is a value type)"
object rawValue = map.GetValue(key);
bool value = rawValue as bool;
Có một cái gì đó tương tự mà có thể làm như vậy một cách an toàn đưa một đối tượng vào một loại giá trị mà không có khả năng của một InvalidCastException
nếu, vì lý do gì, giá trị không phải là một boolean?
@SLaks: Xem câu trả lời của tôi và của kalusbyskov về các lựa chọn thay thế để sử dụng hai phôi. Không phải là nó thực sự hữu ích. –