C#-এ Type.GetInterfaces() মেথดটি বর্তমান Type-এর দ্বারা ইমপ্লিমেন্ট বা ইনহেরিট করা সব ইন্টারফেসের একটি অ্যারে ফেরত দেয়। এটি রিফ্লেকশন (reflection) ব্যবহার করে টাইপের কন্ট্রাক্ট বিশ্লেষণে সাহায্য করে।
সিনট্যাক্স (Syntax)
public abstract Type[] GetInterfaces();
উদাহরণ ১: 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]
উদাহরণ ২: 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]
প্রাইমিটিভ টাইপের কমন ইন্টারফেসগুলো
প্রায় সব প্রাইমিটিভ টাইপ (int, float, double, bool ইত্যাদি) নিচের ইন্টারফেসগুলো ইমপ্লিমেন্ট করে:
IComparable- অবজেক্ট তুলনার জন্যIFormattable- ফরম্যাটেড স্ট্রিং আউটপুটের জন্যIConvertible- অন্য টাইপে কনভার্সনের জন্যIComparable<T>- জেনেরিক তুলনাIEquatable<T>- জেনেরিক সমানতা যাচাই
কাস্টম ক্লাসের ইন্টারফেস চেক করা
using System;
public interface IAnimal { void Speak(); }
public interface IPet { string Name { get; } }
public class Dog : IAnimal, IPet
{
public string Name => "Buddy";
public void Speak() => Console.WriteLine("Woof!");
}
public class Demo
{
public static void Main()
{
Type type = typeof(Dog);
Type[] interfaces = type.GetInterfaces();
Console.WriteLine($"Dog implements {interfaces.Length} interfaces:");
foreach (var iface in interfaces)
Console.WriteLine($" - {iface.Name}");
}
}
আউটপুট
Dog implements 2 interfaces: - IAnimal - IPet
নোট: GetInterfaces() বেস ক্লাসের ইন্টারফেসও ফেরত দেয়। শুধু সরাসরি ডিক্লেয়ার করা ইন্টারফেস পেতে GetInterfaces().Where(i => i.DeclaringType == type) ব্যবহার করুন।