Tôi có nhiều thực thể có thuộc tính IsActive
. Vì lý do nội bộ, tôi cần tất cả các trường đó đều có thể vô hiệu. Mặt khác, đối với mỗi thực thể tôi có thể phải làm một bài kiểm tra đôi trong hàng chục nơi trong ứng dụng:Tránh kiểm tra nhiều lần cho các giá trị rỗng trên cùng một thuộc tính
(null được coi là đúng)
if (language.IsActive == null || language.IsActive.value)
Nếu tôi tạo ra một phương pháp như
class Language
{
public bool IsActiveLanguage()
{
return language.IsActive == null || language.IsActive.value;
}
}
Nó vẫn sẽ không ẩn thuộc tính (ít nhất là từ bên trong lớp) để dễ bị lỗi.
Tôi đã cố gắng tìm cách ghi đè, nhưng tất nhiên tôi không thể thay đổi loại trả về thành đơn giản bool
.
Bạn sẽ làm gì để tránh sự thừa trong trường hợp này?
Vì vậy, trong trường hợp của bạn null tương đương với * true *, không phải là false? Điều đó hơi khác thường. –
Vâng, đó là loại "miễn là nó không sai, đó là sự thật". Tôi đồng ý rằng đây có lẽ không phải là phương pháp hay nhất! – Mathieu