Type.GetInterfaces() मेथड का उपयोग करके वर्तमान टाइप द्वारा इम्प्लीमेंटेड या इनहेरिटेड सभी इंटरफेसेज प्राप्त करें।
सिंटैक्स
public Type[] GetInterfaces();
उदाहरण 1: float टाइप
using System;
public class Demo {
public static void Main() {
Type type = typeof(float);
// विशिष्ट इंटरफेस प्राप्त करें
Type myInterface = type.GetInterface("IFormattable", true);
// सभी इंटरफेसेज प्राप्त करें
Type[] myInterfaces = type.GetInterfaces();
Console.WriteLine("Interface = " + myInterface);
Console.WriteLine("All the Interfaces...");
for (int i = 0; i < myInterfaces.Length; i++) {
Console.WriteLine("" + myInterfaces[i]);
}
}
}
आउटपुट
Interface = System.IFormattable
All the Interfaces...
System.IComparable
System.IFormattable
System.IConvertible
System.IComparable`1[System.Single]
System.IEquatable`1[System.Single]
उदाहरण 2: int टाइप
using System;
public class Demo {
public static void Main() {
Type type = typeof(int);
Type myInterface = type.GetInterface("IFormattable");
Type[] myInterfaces = type.GetInterfaces();
Console.WriteLine("Interface = " + myInterface);
Console.WriteLine("All the Interfaces...");
for (int i = 0; i < myInterfaces.Length; i++) {
Console.WriteLine("" + myInterfaces[i]);
}
}
}
आउटपुट
Interface = System.IFormattable
All the Interfaces...
System.IComparable
System.IFormattable
System.IConvertible
System.IComparable`1[System.Int32]
System.IEquatable`1[System.Int32]
कस्टम क्लास के लिए
public interface IAnimal { void Speak(); }
public interface IPet { string Name { get; } }
public interface IIdentifiable { int Id { get; } }
public class Dog : IAnimal, IPet, IIdentifiable {
public void Speak() => Console.WriteLine("Woof!");
public string Name { get; set; }
public int Id { get; set; }
}
// उपयोग
Type dogType = typeof(Dog);
Type[] interfaces = dogType.GetInterfaces();
foreach (var iface in interfaces) {
Console.WriteLine(iface.Name);
}
// आउटपुट:
// IAnimal
// IPet
// IIdentifiable
// IEquatable`1 (यदि इम्प्लीमेंट किया गया)
// आदि
GetInterface vs GetInterfaces
| मेथड | रिटर्न | उपयोग |
|---|---|---|
GetInterface(name) | Type (सिंगल) | नाम से विशिष्ट इंटरफेस |
GetInterface(name, ignoreCase) | Type | केस-इनसेंसिटिव खोज |
GetInterfaces() | Type[] | सभी इंटरफेसेज (इनहेरिटेड सहित) |
इंटरफेस मैपिंग विवरण
// विस्तृत मैपिंग
InterfaceMapping map = type.GetInterfaceMap(typeof(IAnimal));
Console.WriteLine("Interface: " + map.InterfaceType);
Console.WriteLine("Target: " + map.TargetType);
for (int i = 0; i < map.InterfaceMethods.Length; i++) {
Console.WriteLine($"Interface method: {map.InterfaceMethods[i].Name}");
Console.WriteLine($"Implementation: {map.TargetMethods[i].Name}");
}
सामान्य इंटरफेसेज (बिल्ट-इन टाइप्स)
IComparable/IComparable<T>- क्रमबद्धताIEquatable<T>- टाइप-सेफ समानताIFormattable- कस्टम फॉर्मेटिंगIConvertible- बेस टाइप कन्वर्जनIDisposable- रिसोर्स क्लीनअपIEnumerable/IEnumerable<T>- इटरेशन