क्या किसी ने "टाइप डिक्शनरी" के बारे में सुना है जो कि चाबियों के रूप में प्रकारों का उपयोग करता है और विरासत का समर्थन करता है?शब्दकोश टाइप करें?
अपने आवेदन में मैं, कार्यों के लिए प्रकार से एक शब्दकोश करना चाहते हैं एक तरह से इस तरह:
Dictionary<Type, Func<object, object>> Transformers;
विचार है कि यह के आधार पर कुछ फैशन में एक वस्तु को बदलने के लिए इस्तेमाल किया जाएगा है इसके टाइप:
// Transform an object 'obj'
object result = Transformers[obj.GetType()](obj)
एक सामान्य शब्दकोश का नुकसान यह है कि इस प्रकार का नुकसान ठीक से मेल खाना चाहिए। इसलिए यदि मैंने IList < T> के लिए ट्रांसफ़ॉर्मर लिखा है, तो ट्रांसफॉर्मर्स डिक्शनरी में इसे डालने का कोई उपयोग नहीं है क्योंकि किसी ऑब्जेक्ट में IList < टी> (केवल टी [], सूची < टी> इत्यादि नहीं है) दूसरे शब्दों में , यदि ओबीजे एक सूची < टी> है, तो IList < टी के लिए ट्रांसफॉर्मर सामान्य शब्दकोश में लुकअप द्वारा नहीं मिलेगा।
मान लीजिए कि टाइप डिक्शनरी < टीवील्यू जैसी कोई चीज़ नहीं है, यदि मैं बहुत कठिन नहीं हूं तो मैं एक लिखने पर विचार कर सकता हूं। कोई विचार यह कैसे पूरा किया जा सकता है?
यह काम नहीं करेगा। कौन सा हैश कोड IEqualityComparer कक्षा बी के लिए वापस आ जाएगा जो ए से प्राप्त होता है और आईए और आईबी लागू करता है? साथ ही, ध्यान रखें कि शब्दकोश 'सूची', 'IList ' और 'ऑब्जेक्ट' के साथ-साथ 'कुंजी' के लिए कुंजी पकड़ने में सक्षम होना चाहिए। –
Qwertie
आप सही हैं, मैंने ऐसा नहीं सोचा था। –
उस मामले में @ क्वर्टी, एक प्रकार के लिए शब्दकोश में कई मैचों में क्या होगा यदि आपका शब्दकोश वापस आ जाएगा? क्या यह सभी घटनाओं को वापस लेना चाहिए, केवल सबसे विशिष्ट, आदि? –