📅  最后修改于: 2023-12-03 15:14:28.089000             🧑  作者: Mango
在C#编程语言中,我们经常会需要获取某一个类型的接口。Type.GetInterfaces()方法就是用于获取当前类型实例所实现的所有接口列表的方法。
public interface Type
{
Type[] GetInterfaces();
}
该方法没有参数。
Type[] - 当前类型实例所实现的所有接口列表。
下面的示例代码演示了如何使用Type.GetInterfaces()方法来获取一个类所实现的所有接口:
using System;
public interface IMyInterface1
{
void InterfaceMethod1();
}
public interface IMyInterface2
{
void InterfaceMethod2();
}
public class MyClass : IMyInterface1, IMyInterface2
{
public void InterfaceMethod1()
{
Console.WriteLine("InterfaceMethod1");
}
public void InterfaceMethod2()
{
Console.WriteLine("InterfaceMethod2");
}
}
class Program
{
static void Main(string[] args)
{
Type myClassType = typeof(MyClass);
Type[] interfaceList = myClassType.GetInterfaces();
Console.WriteLine("MyClass 实现的接口:");
foreach (Type interfaceType in interfaceList)
{
Console.WriteLine(interfaceType.Name);
}
}
}
输出结果:
MyClass 实现的接口:
IMyInterface1
IMyInterface2
如果一个类型没有实现任何接口,则该方法将返回一个空数组。
如果一个类型实现了多个相同的接口(或从多个基类继承了相同的接口),则该接口仅会被返回一次。
Type.GetInterfaces()方法只会返回当前类型实例直接继承或实现的接口列表。它不会返回继承关系链中祖先类型实现的接口列表。