आपको ऐसा ऑब्जेक्ट बनाना होगा जो इसे प्रबंधित कर सके।
इस बारे में सोचें कि प्रति आइटम को स्टोर करने की आवश्यकता होगी। असल में, डेटा (उदा। txtName
), और एक समाप्ति समय। इसका मतलब है कि आपको शायद उस वर्ग या संरचना की आवश्यकता होगी जिसमें केवल 2 तत्व हैं।
आपका ExpiringList
वर्ग उस प्रकार की एक सूची हो जाएगा।
अब आपके पास मूलभूत संरचना संरचना है (ExpiringListItem
का संग्रह/सूची) आपको इस बारे में सोचना होगा कि आप किस ऑपरेशन का समर्थन करना चाहते हैं। वर्तमान में आपने AddToList सूचीबद्ध किया है, अन्य शायद सभी आइटमों पर निकालें, साफ़ करें, और शायद पुनरावृत्त हो जाएंगे।
केवल एक चीज अपने ExpiringList के लिए अद्वितीय एक सामान्य List<T>
की तुलना में है कि आप स्वचालित रूप से समाप्त हो गई आइटम निकालना चाहते है। इसलिए यह आपके एक्सपिरिंगलिस्ट को इंटरफ़ेस IList<T>
को कार्यान्वित करने और आंतरिक रूप से एक निजी सूची का उपयोग करने के लिए समझ में आता है, संभवतः आप अपनी सूची बना सकते हैं (और आवश्यकता से आपकी ExpiredListItem
कक्षा) जेनेरिक।
मुश्किल हिस्सा है, समझ और लागू करने विरासत (एक अलग सवाल वास्तव में) से परे, बाहर काम कर रहा है की अवधि समाप्त हो आइटम निकालने का तरीका।
यह अपने आइटम पर अपने वर्ग कि दोहराया भीतर एक विधि (उलटे क्रम में) बनाने मतलब है, वर्तमान समय के साथ उनकी समाप्ति समय की तुलना और अवधि समाप्त हो लोगों को हटाने जाएगा।
आप अपनी आंतरिक सूची में उपयुक्त विधियों को कॉल करके इंटरफ़ेस को कार्यान्वित कर सकते हैं।
आप इस बिंदु पर कह सकते हैं, आपका काम हो गया, जब से तुम सिर्फ समय-समय पर कि विधि कॉल इससे पहले कि आप सूची में आइटम का उपयोग सुनिश्चित करने के लिए सुनिश्चित करें कि सभी की अवधि समाप्त हो आइटम चले गए हैं।
हो सकता है कि एक बेहतर विकल्प आंतरिक सूची पर विधि चलाने से पहले इस विधि कॉल करने के लिए किया जाएगा। इस पर निर्भर करते हुए कि आप अपनी सूची का उपयोग कैसे करेंगे, यह अधिक हो सकता है।
स्रोत
2011-06-27 13:02:33
इसे 'कैश' कहा जाता है। – leppie
सुराग: एक डेटा संरचना बनाएं जो यह – crashmstr
करती है यदि आप एएसपीनेट का उपयोग कर रहे हैं, तो कैश कक्षाएं आपके लिए यह कर सकती हैं। –