如果没有使用具体实现进行初始化,CLR 是否会加载接口类型?
考虑具有实现 FooImpl 的接口 IFoo
例如
IFoo foo;
与
IFoo foo = new FooImpl();
CLR 只会在第二种情况下加载 IFoo 类型吗?此外,如果存在从 FooImpl 继承的另一种类型(例如 FooImpl2)
这段代码会从 FooImpl2 开始并沿着继承层次结构加载 IFoo 接口吗?此外,IFoo 的 MethodTable 是否包含直接指向 FooImpl2 的方法表的指针,或者它是否会通过中间实现类型(即 FooImpl)重定向。
IFoo foo = new FooImpl2();