C# में Type.GetInterface() मेथड वर्तमान Type द्वारा लागू या इनहेरिट किए गए एक विशिष्ट इंटरफेस को नाम से खोजकर लौटाता है।
सिंटैक्स
दो ओवरलोड उपलब्ध हैं:
public Type GetInterface (string name); public abstract Type GetInterface (string name, bool ignoreCase);
- name: खोजे जाने वाले इंटरफेस का नाम
- ignoreCase: true = केस-इनसेंसिटिव खोज, false = केस-सेंसिटिव (डिफ़ॉल्ट)
उदाहरण 1: केस-सेंसिटिव खोज (डिफ़ॉल्ट)
using System;
public class Demo
{
public static void Main()
{
Type type = typeof(double);
Type myInterface = type.GetInterface("IFormattable");
Console.WriteLine("Interface = " + myInterface);
}
}
आउटपुट
Interface = System.IFormattable
उदाहरण 2: केस-इनसेंसिटिव खोज
using System;
public class Demo
{
public static void Main()
{
Type type = typeof(float);
Type myInterface = type.GetInterface("IFormattable", true);
Console.WriteLine("Interface = " + myInterface);
}
}
आउटपुट
Interface = System.IFormattable
उदाहरण 3: मौजूद न होने वाला इंटरफेस
using System;
public class Demo
{
public static void Main()
{
Type type = typeof(int);
Type iface = type.GetInterface("INonExistentInterface");
if (iface == null)
Console.WriteLine("इंटरफेस नहीं मिला - null लौटाया गया");
else
Console.WriteLine("Interface = " + iface);
}
}
आउटपुट
इंटरफेस नहीं मिला - null लौटाया गया
उदाहरण 4: जेनेरिक इंटरफेस खोजना
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
Type type = typeof(List);
// जेनेरिक इंटरफेस नाम में बैकटिक (`) शामिल होता है
Type iEnumerable = type.GetInterface("System.Collections.Generic.IEnumerable`1");
Type iList = type.GetInterface("IList`1");
Console.WriteLine("IEnumerable`1: " + (iEnumerable != null ? "मिला" : "नहीं मिला"));
Console.WriteLine("IList`1: " + (iList != null ? "मिला" : "नहीं मिला"));
}
}
GetInterface() बनाम GetInterfaces()
| मेथड | उपयोग | वापसी |
|---|---|---|
| GetInterface(name) | नाम से एक विशिष्ट इंटरफेस खोजें | Type या null |
| GetInterfaces() | सभी इंटरफेस प्राप्त करें | Type[] |
मुख्य बिंदु
- इंटरफेस नहीं मिलने पर null लौटाता है (अपवाद नहीं फेंकता)
- ignoreCase = true का उपयोग करके केस-असंवेदनशील खोज करें
- जेनेरिक इंटरफेस के लिए नाम में बैकटिक (`) और अरिटी नंबर शामिल करें (जैसे `IEnumerable`1`)
- बेस क्लास और इनहेरिटेंस चेन में इंटरफेस भी खोजता है
- प्लगइन सिस्टम, डिपेंडेंसी इंजेक्शन, रनटाइम प्रकार जांच के लिए उपयोगी