लागू करता है मान लें कि मेरे पास एक प्रकार है, MyType। मैं निम्न कार्य करना चाहते हैं:यह पता लगाना कि कोई प्रकार एक सामान्य इंटरफ़ेस
- पता करें कि MyType IList इंटरफ़ेस लागू करता है, कुछ टी
- के लिए तो का जवाब (1) है हाँ, यह पता लगाने क्या टी है।
ऐसा लगता है कि यह GetInterface() है, लेकिन यह केवल आपको एक विशिष्ट नाम से खोज करने देता है। वहाँ के लिए "सभी इंटरफ़ेस उस रूप IList के हैं" खोज करने के लिए एक रास्ता है
संबंधित (यदि संभव हो तो यह भी उपयोगी है अगर यह काम करता है, तो इंटरफ़ेस IList की एक subinterface था woudl।): How to determine if a type implements a specific generic interface type
यह सरणी के मामले को भी संभालता है, जो अच्छा है। यदि आप स्पष्ट रूप से सरणी के लिए परीक्षण करना चाहते हैं तो "if (myType.IsArray) का उपयोग करें MyType.GetElementType();" (और यह तेजी से हो सकता है, मुझे आशा है कि इनमें से कोई भी प्रदर्शन-महत्वपूर्ण नहीं है!) – yoyo
मेरे जैसे लोगों के लिए जो उत्सुक थे कि ISInterface की आवश्यकता क्यों है: GetGenericTypeDefinition() को गैर-सामान्य प्रकार पर बुलाया जाता है। – GameFreak
Type.IsGenericType संपत्ति netstandard 1.6 और निम्न (और इस प्रकार .NET कोर 1.0 पर उपलब्ध नहीं है) पर उपलब्ध नहीं है, लेकिन आप इसके बजाय TypeInfo.IsGenericType का उपयोग कर सकते हैं: type.GetTypeInfo()। IsGenericType। – dotarj