प्रतिक्रियाशील एक्सटेंशन से System.Interactive.dll (v1.0.2521.0) में, EnumerableEx
में Memoize
विधि और MemoizeAll
विधि दोनों हैं। एपीआई दस्तावेज उन दोनों के लिए समान है:सिस्टम। इंटरैक्टिव: Memoize() और MemoizeAll() के बीच अंतर?
एक गणित बनाता है जो केवल एक बार मूल गणना करता है और इसके परिणामों को कैश करता है।
हालांकि, ये विधियां स्पष्ट रूप से समान नहीं हैं। अगर मैं Memoize
का उपयोग करता हूं, तो मेरे गणित के पास पहली बार मानते हैं कि मैं इसे गिनता हूं, और दूसरी बार खाली लगता है। यदि मैं MemoizeAll
का उपयोग करता हूं तो मुझे वह व्यवहार मिलता है जो मैं किसी भी विधि के विवरण से अपेक्षा करता हूं - मैं परिणाम जितनी बार चाहूं उतनी बार समझा सकता हूं और हर बार एक ही परिणाम प्राप्त कर सकता हूं, लेकिन स्रोत केवल एक बार समझा जाता है।
क्या कोई मुझे बता सकता है कि इन तरीकों के बीच क्या अंतर है? Memoize
के लिए उपयोग-केस क्या है? यह वास्तव में भ्रमित दस्तावेज के साथ एक काफी बेकार विधि की तरह लगता है।
धन्यवाद, कि वास्तव में एक अच्छी व्याख्या है:
इस ब्लॉग पोस्ट में अंतर का एक वास्तव में महान स्पष्टीकरण नहीं है। हो सकता है कि प्रतिक्रियाशील एक्सटेंशन के भविष्य के संस्करण 'Memoize' के विवरण का विस्तार करेंगे। –