我正在研究一些类和接口,已经开发出了一种简单的方法来确定一个类的层次结构,即识别继承链。
public static void OutputClassHierarchy(Type ty)
{
if (ty.BaseType == null)
{
Console.WriteLine("{0}: Base", ty);
Console.WriteLine("");
return;
}
Console.WriteLine("{0} : {1}", ty, ty.BaseType);
OutputClasshierarchy(ty.BaseType);
}
So, for
OutputClassHierarchy(typeof(System.Exception));
我得到了以下输出:
System.Exception:System.Object
System.Object:Base
这正是我所期望的。
但是,如果我尝试使用实现另一个接口的接口进行相同的操作,即:
interface IMyInterface : IDisposable
{
void Hello();
}
...
OutputClassHierarchy(typeof(IMyInterface));
我得到了以下输出:
所以,这里发生了什么?是否可能推断出上面声明的接口层次结构,或者在涉及接口时不存在这样的东西?MyNameSpace.IMyInterface : Base
此外,在所有这些内容中,System.Object在哪里?我认为一切都是建立在它之上的。