Tôi muốn lấy được một lớp từ Predicate < IMyInterface>, nhưng nó xuất hiện như thể Predicate <> được niêm phong. Trong trường hợp của tôi, tôi muốn trả về kết quả ngược (!) Của hàm được chỉ định. Tôi có những cách khác để hoàn thành mục tiêu. Câu hỏi của tôi là những gì các nhà thiết kế MS đã suy nghĩ khi quyết định đóng dấu Predicate <>?Tại sao là <> niêm phong?
Nếu không có nhiều suy nghĩ tôi đã đưa ra: (a) đơn giản hóa thử nghiệm của họ, chỉ cần một thời gian vs thương mại chi phí đi (b) "không tốt" có thể đến từ bắt nguồn từ Predicate <>
Những gì bạn làm nghĩ sao?
Cập nhật: Có n biến vị ngữ được thêm động vào danh sách các Predicates trong giai đoạn khởi tạo. Mỗi loại trừ lẫn nhau (nếu Abc được thêm vào, NotAbc sẽ không được thêm vào). Tôi đã quan sát một mẫu trông giống như:
bool Happy(IMyInterface I) {...}
bool NotHappy(IMyInterface I) { return !Happy(I); }
bool Hungry(IMyInterface I) {...}
bool NotHungry(IMyInterface I) { return !Hungry(I); }
bool Busy(IMyInterface I) {...}
bool NotBusy(IMyInterface I) { return !Busy(I); }
bool Smart(IMyInterface I) {...}
bool NotSmart(IMyInterface I) {...} //Not simply !Smart
Không phải là tôi không thể giải quyết được vấn đề, tôi tự hỏi tại sao tôi không thể giải quyết nó theo một cách nhất định.
Khi bạn nói "đảo ngược", tôi không chắc bạn muốn nói gì. Đối với tôi, nghịch đảo của hàm từ A đến B là hàm từ B đến A. Tôi nghĩ rằng "phủ định" có thể rõ ràng hơn. Bạn đang tìm kiếm điều gì? –
Tôi xin lỗi, nhưng sau khi bạn cập nhật, tôi chỉ không hiểu câu hỏi là gì: bạn có hỏi làm thế nào để có danh sách đại biểu và cho những người không tồn tại - bạn thêm người được ủy quyền không? –