प्रश्न के पहले भाग अन्य पदों में कवर किया गया था, लेकिन मैं एक उदाहरण नहीं देखा। जेनेरिक इंटरफेस और उनके गैर-जेनेरिक समकक्षों को लागू करते समय मैं आमतौर पर इसका उपयोग करता हूं। उदाहरण के लिए, यदि मैं एक सामान्य अवलोकन करने योग्य सूची बनाना चाहता हूं, तो मैं आईएलआईस्ट इंटरफेस दोनों को लागू करना चाहता हूं।
Public Class ObservableList(Of T)
Implements INotifyCollectionChanged,
IList,
IList(Of T)
End Class
जब दोनों ILists लागू किए जाते हैं तो हम बहुत सारे डुप्लिकेट फ़ंक्शंस के साथ समाप्त होते हैं। कुछ एक ही हस्ताक्षर साझा करते हैं और स्पष्ट जैसे दोनों IList कार्यों को कार्यान्वित कर सकते हैं। लेकिन कुछ गैर-सामान्य कार्य सामान्य के बजाय वस्तुओं के साथ सौदा करते हैं। तो जोड़ें फ़ंक्शन के लिए, मैं दोनों कार्यान्वयन कार्य करता हूं, लेकिन क्लास को आसान बनाने के लिए गैर-जेनेरिक संस्करण निजी सेट करता हूं।
Public Sub Add(item As T) Implements System.Collections.Generic.ICollection(Of T).Add
'Add item to collection
End Sub
Private Function Add1(item As Object) As Integer Implements System.Collections.IList.Add
'Add item to collection
End Function
इस तरह, वर्ग पारित किया जा सकता है और एक IList रूप में इस्तेमाल किया है, लेकिन एक सांकेतिक शब्दों में बदलनेवाला संभावित अधिभार मनमुताबिक एक IList (टी के) के रूप में उपयोग करने के लिए हो जाता है।
स्रोत
2012-07-12 14:04:37
तो कोड काम करता है? मैं आश्चर्यचकित हूँ। एक इंटरफ़ेस के विचार के विपरीत लगता है। – jcollum