मैं एक सी # विधि है जो एक विधेय < फू > स्वीकार करता है और मिलान मदों की एक सूची देता है ...कैशिंग प्रतिनिधि परिणाम
public static List<Foo> FindAll(Predicate<Foo> filter)
{
...
}
फिल्टर अक्सर एक सामान्य सेट में से एक हो जाएगा ...
हैpublic static class FooPredicates
{
public static readonly Predicate<Foo> IsEligible = (foo => ...)
...
}
... लेकिन एक अज्ञात प्रतिनिधि हो सकता है।
अब मैं इस विधि को एएसपी.NET कैश में अपने परिणाम कैश करना चाहता हूं, इसलिए उसी प्रतिनिधि के साथ बार-बार कॉल कैश किए गए परिणाम को वापस कर दें। इसके लिए, मुझे प्रतिनिधि से कैश कुंजी बनाना होगा। Delegate.GetHashCode() इस उद्देश्य के लिए समझदार परिणाम पैदा करेगा? क्या प्रतिनिधि के कुछ अन्य सदस्य हैं जिन्हें मुझे देखना चाहिए? क्या आप इसे एक और तरीका पूरी तरह से करेंगे?
मैंने नीचे जवाब दिया है प्रतिनिधियों के कुछ परीक्षणों के साथ। एक्वाल्स। मैं शायद सोमवार को अधिक जोड़ दूंगा जब मैं वास्तविक विचारों का उपयोग करने की कोशिश करता हूं। – stevemegson