কম্পিউটার টিউটোরিয়াল

C#-এ Type.GetInterfaces() মেথড: টাইপের ইন্টারফেস তালিকা পেতে


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) ব্যবহার করুন।

  1. C#-এ Type.GetDefaultMembers() মেথড

  2. C#-এ Type.GetArrayRank() মেথড

  3. C#-এ Type.Equals() মেথড

  4. সি শার্পে ElementAt() মেথড