在运行时检查 class 个对象
Check class of object at runtime
我有一些继承 classes,比如 A
和 B: A
。
我找到了一种方法来检查 运行时 ,我正在处理 class:
A a = new A;
if( some condition )
a = new B;
if (a.classinfo.name == "a.b")
writeln("That previous condition was met");
但是有没有更好的方法呢?我现在真的很困惑 typeid
typeof
和 is
.
如果您需要知道它是该类型还是它的任何子类型,这可能是这些情况下的最佳方案:
(cast(B)a) !is null
如果你需要知道一个确切的类型,这很少见,你可以使用:
a.classinfo is B.classinfo
我有一些继承 classes,比如 A
和 B: A
。
我找到了一种方法来检查 运行时 ,我正在处理 class:
A a = new A;
if( some condition )
a = new B;
if (a.classinfo.name == "a.b")
writeln("That previous condition was met");
但是有没有更好的方法呢?我现在真的很困惑 typeid
typeof
和 is
.
如果您需要知道它是该类型还是它的任何子类型,这可能是这些情况下的最佳方案:
(cast(B)a) !is null
如果你需要知道一个确切的类型,这很少见,你可以使用:
a.classinfo is B.classinfo