【发布时间】:2015-07-22 13:04:13
【问题描述】:
我有一些接口类型的列表。为了调试,我想打印出列表中每个对象的底层类的名称:
import std.stdio, std.container;
interface IFace { }
class Foo : IFace { }
class Bar : IFace { }
unittest {
SList!IFace list;
list.insert(new Foo);
list.insert(new Bar);
foreach(obj ; list) writeln(obj.classinfo.name);
}
我期待
富
酒吧
但是得到了
面
面
有没有办法在运行时从接口类型变量中提取实现类?
此外,如果IFace 是class 而不是interface,我确实会得到预期的结果。为什么?
【问题讨论】: