सी # 4.0 से बाहर आने से पहले, मैं कॉन्वर्सिस और contravariance के बारे में काफी उत्साहित था। यह सैद्धांतिक शुद्धता के लिए मेरे प्यार के लिए pandered!सी # 4.0 में कॉन्वर्सिस और contravariance के लिए अच्छे, वास्तविक जीवन के उपयोग के मामलों के उदाहरण?
हालांकि, अब यह बाहर है, और मैं सामान्य, रोज़ाना, उबाऊ कोड लिखने के लिए वापस आ गया हूं, मुझे आश्चर्य हो रहा है: क्या मैंने कभी इसका उपयोग किया है? और मैंने देखा कि मैंने इसे सख्ती से इस्तेमाल नहीं किया है। मैंने जो इंटरफेस या प्रतिनिधियों को परिभाषित किया है, उनमें से कोई भी इससे लाभान्वित नहीं हुआ है।
केवल एक ही मामला है, जिसमें मैं बाद में पता चला मैं अनजाने सहप्रसरण का इस्तेमाल किया है, लेकिन यह बहुत ही सूक्ष्म है और मैं साथ ही यह ध्यान नहीं दिया जा सकता था नहीं है। कल्पना कीजिए X
एक आधार स्तरीय है और Y
यह के वंशज है:
if (enumerableOfYs.Contains(variableOfTypeX))
वहाँ किसी भी दिलचस्प या रोमांचक उदाहरण हैं, जहां तुम लोगों में से किसी एक वास्तविक जीवन, गैर काल्पनिक use- में सहप्रसरण या contravariance का इस्तेमाल किया है कर रहे हैं मामला और यह वास्तव में शानदार "सही" होने से दिन बचा है?
आपका मतलब है 'आईन्यूमेरेबल', 'Func', और 'IComparable ' जैसी चीजों के अलावा आप शायद इसे महसूस किए बिना रोज़ाना उपयोग करते हैं? –
Gabe