Tôi nhận ra cách thích hợp để xử lý các loại nullable là sử dụng thuộc tính HasValue. Nhưng tôi muốn biết tại sao tuyên bố chuyển đổi sau đây phá vỡ trên trường hợp null thay vì mặc định. Sử dụng VS2015 C# 4.0. Một máy tính đang sử dụng VS2010 C# 4.0 không có vấn đề tương tự.Bật Nullable Boolean: trường hợp chuyển thành null khi giá trị là true
private void Testing()
{
bool? boolValue = true;
switch (boolValue)
{
case null:
break; //even though value is true, code runs here
default:
break;
}
}
Sửa: Hành vi được quan sát với bất kỳ Nullable
nếu chỉ case Null
và default
được chỉ định.
Tôi không nhận được hành vi này trên VS2013 –
Tôi đoán biểu tượng của bạn đã lỗi thời và không chạy những gì bạn cho là đang chạy hoặc có thể trình biên dịch đang thực hiện một số điều tối ưu hóa lạ và chải hai khối bằng nhau . Có lẽ thêm một số mã thực tế trong đó và xem nó làm gì .. –
Tôi không nhận được hành vi đó trong năm 2010. – thewisegod