Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การดึงอินเทอร์เฟซทั้งหมดที่ Type ปัจจุบันนำมาหรือสืบทอดใน C#

ภาพรวม

เมธอด Type.GetInterfaces() คืนอาร์เรย์ Type[] ของอินเทอร์เฟซทั้งหมดที่ชนิดข้อมูลนำมาใช้ (implement) หรือสืบทอด (inherit) รวมถึงของ base class

ตัวอย่างที่ 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]

สรุป

  • GetInterfaces() คืนอินเทอร์เฟซทั้งหมด (รวม generic interfaces)
  • GetInterface(name, ignoreCase) ค้นหาอินเทอร์เฟซเฉพาะตัว
  • ชนิดพื้นฐาน (primitive types) นำมาใช้หลายอินเทอร์เฟซมาตรฐาน