IEnumerable<T>
, IComparable<T>
और कुछ और प्रकार टाइप-वेरिएंट में भिन्नता टाइप करें। IList<T>
, ICollection<T>
और कई अन्य नहीं हैं। क्यूं कर?.NET Framework 4.0
6
A
उत्तर
11
.NET Framework 4.0 सुरक्षित सह/अनुबंध-भिन्नता प्रस्तुत करता है। जबकि IEnumerable<T>
उत्पादन पदों में T
केवल है और IComparable<T>
T
केवल इनपुट की स्थिति में है IList<T>
और ICollection<T>
T
दोनों में इनपुट और आउटपुट स्थिति है।
मान लें IList<T>
समर्थित प्रकार विचरण: "। सी # का भविष्य"
static void FailingMethod(IList<object> list) {
list[0] = 5;
}
static void Test() {
var a = new List<string>();
a[0] = "hello";
FailingMethod(a); // if it was variant, this method call would be unsafe
}
1
ऐन्डर्स Hejlseberg एक संक्षिप्त है, लेकिन चर्चा है कि उनकी बात में सह/contravariance का वर्णन करता है, रोशन कॉन्वर्सिस और contravariance पर उनकी चर्चा प्रस्तुति में 50 मिनट और 17 सेकंड से शुरू होता है।
2
यह भी देखें: What C# 4.0 covariance doesn't do
संबंधित मुद्दे
- 1. .NET Framework 4.0
- 2. .NET Framework 4.0
- 3. .NET Framework 4.0 स्थापना, ड्राइव
- 4. करता .Net Framework 4.0 डीबी 2
- 5. .NET Framework
- 6. .Net Framework 4,0
- 7. .NET 4.0
- 8. बिना .NET Framework 4
- 9. .NET Framework 4
- 10. .NET Framework
- 11. .NET Framework
- 12. .NET Framework
- 13. .NET Framework
- 14. .NET Framework 3.5 के विरुद्ध संकलित परियोजना सी # 4.0 विशेषताएं
- 15. क्या .NET Framework 4.0 को पुनरारंभ करने की आवश्यकता है?
- 16. एसएसआरएस 2012 कस्टम कोड .NET Framework 4.0 समर्थित नहीं
- 17. .NET Framework 4.0 और एरो ग्लास इश्यू पर ड्राइंग
- 18. विंडोज फॉर्म एप्लिकेशन .Net Framework 4.0 से 2.0
- 19. .NET 4.0 असेंबली .NET 4.0 के अंतर्गत चला सकते हैं?
- 20. .NET 4.0 सीआई सर्वर
- 21. ILMerge और .NET 4.0
- 22. पंजीकृत .NET Framework डेटा प्रदाता
- 23. .NET 4.0/4.5
- 24. .NET Framework - अपग्रेड कब करें?
- 25. .NET Framework क्या है?
- 26. .NET Framework 2.0
- 27. .NET Framework निर्देशिका पथ
- 28. .NET Framework 3.5
- 29. .NET Framework निर्भरता
- 30. सी # बिना .NET Framework
धन्यवाद! ऐसा लगता है कि इंडेक्सर्स का उपयोग किसी वर्ग को गैर-संस्करण बनाता है। लेकिन आईसीओलेक्शन <> केवल इनपुट पैरामीटर में टी है। – UserControl
नहीं, यह सामान्य रूप से सूचकांक से संबंधित नहीं है। यह किसी भी अन्य विधि या संपत्ति की तरह, पैरामीटर और सूचकांक के वापसी प्रकार (और प्राप्त/सेट एक्सेसर्स का अस्तित्व) पर निर्भर करता है। आपके पास एक इंडेक्सर हो सकता है जैसे: टी यह [int अनुक्रमणिका] {get {return x [index] प्राप्त करें; }} और एक सेट एक्सेसर के बिना, यह संस्करण हो सकता है। –