Type.IsSubclassOf方法仅适用于两种具体类型,例如
public class A {}
public class B : A {}
typeof(B).IsSubclassOf(typeof(A)) // returns true
有没有办法查明一个接口(interface)是否扩展了另一个接口(interface)?例如
public interface IA {}
public interface IB : IA {}
我唯一能想到的是在 IB 上使用 GetInterfaces 并检查它是否包含 IA,有人知道另一种/更好的方法吗?
最佳答案
你可以做到
bool isAssignable = typeof(IA).IsAssignableFrom(typeof(IB));
我想这会为您提供在这种情况下所需的信息,而且当然不仅适用于接口(interface)。
我假设你有 Type
对象,如果你有实际的实例,这会更短、更清晰且性能更高:
public interface ICar : IVehicle { /**/ }
ICar myCar = GetSomeCar();
bool isVehicle = myCar is IVehicle;
关于c# - 如何检查一个接口(interface)是否在 C# 中扩展了另一个接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3892814/