मेरे पास ऑब्जेक्ट पैरामीटर है और मुझे यह जांचने की आवश्यकता है कि ऑब्जेक्ट vb.net में निर्दिष्ट इंटरफ़ेस लागू करता है या नहीं। इसका परीक्षण कैसे करें?कोई ऑब्जेक्ट किसी इंटरफ़ेस को लागू करता है
धन्यवाद।
मेरे पास ऑब्जेक्ट पैरामीटर है और मुझे यह जांचने की आवश्यकता है कि ऑब्जेक्ट vb.net में निर्दिष्ट इंटरफ़ेस लागू करता है या नहीं। इसका परीक्षण कैसे करें?कोई ऑब्जेक्ट किसी इंटरफ़ेस को लागू करता है
धन्यवाद।
उपयोग TypeOf...Is:
If TypeOf objectParameter Is ISpecifiedInterface Then
'do stuff
End If
ध्यान दें कि यदि "सामान करना" ऑब्जेक्ट पर इंटरफ़ेस के सदस्य को आविष्कार करने की आवश्यकता है, तो संभवतः आप 'As' का उपयोग करना चाहते हैं और फिर ऑब्जेक्ट 'IsNot कुछ भी नहीं' सुनिश्चित करना चाहते हैं। (यह एक अनावश्यक दूसरी कास्ट रोकता है।) – bobbymcr
requiredInterface.IsAssignableFrom (representedType)
दोनों requiredInterface और representedType प्रकार
मैं भी स्कॉट Hansleman द्वारा इस article पाया इस के साथ विशेष रूप से उपयोगी होने के लिए कर रहे हैं। इस रिपोर्ट में उन्होंने सिफारिश की गई है
सी #
if (typeof(IWhateverable).IsAssignableFrom(myType)) { ... }
मैं कर समाप्त हो गया:
VB.Net
Dim _interfaceList As List(Of Type) = myInstance.GetType().GetInterfaces().ToList()
If _interfaceList.Contains(GetType(IMyInterface)) Then
'Do the stuff
End If
मैं एक List(Of String)
और TypeOf tmp Is IList
रिटर्न False
है। एक सूची (टी के) कई इंटरफेस को लागू करता है (IEnumerable, IList, ...) और सिर्फ एक जाँच VB में निम्नलिखित स्निपेट की आवश्यकता है:
If tmp.GetInterfaces().Contains(GetType(IEnumerable)) Then
// do stuff...
End If
यहाँ हैं कि कोई वस्तु चर निर्धारित करने के लिए "ओ एक आसान तरीका है "एक विशिष्ट इंटरफ़ेस लागू करता है" ISOMething ":
If o.GetType().GetInterfaces().Contains(GetType(ISomething)) Then
' The interface is implemented
End If
यह एक अच्छा सवाल है, Google में मेरी खोज क्वेरी से मेल खाता है और इसका उत्तर है। – CodingBarfield