Trong System.Interactive.dll (v1.0.2521.0) từ Tiện ích mở rộng phản ứng, EnumerableEx
có cả phương thức Memoize
và phương thức MemoizeAll
. Tài liệu API giống hệt nhau cho cả hai tài liệu:System.Interactive: Sự khác biệt giữa Memoize() và MemoizeAll()?
Tạo một số đếm chỉ liệt kê số đếm gốc một lần và lưu trữ kết quả của nó.
Tuy nhiên, các phương pháp này rõ ràng không giống nhau. Nếu tôi sử dụng Memoize
, số đếm của tôi có giá trị trong lần đầu tiên liệt kê nó và dường như bị trống lần thứ hai. Nếu tôi sử dụng MemoizeAll
thì tôi sẽ nhận được hành vi tôi mong đợi từ mô tả của một trong hai phương pháp - tôi có thể liệt kê kết quả nhiều lần theo ý muốn và nhận được kết quả tương tự mỗi lần, nhưng nguồn chỉ được liệt kê một lần.
Bất cứ ai có thể cho tôi biết sự khác biệt dự định giữa các phương pháp này là gì? Trường hợp sử dụng cho Memoize
là gì? Nó có vẻ như một phương pháp khá vô dụng với tài liệu thực sự khó hiểu.
Cảm ơn, đó thực sự là một lời giải thích tốt. Có lẽ các phiên bản tương lai của Reactive Extensions sẽ mở rộng mô tả của 'Memoize'. –