digitalmars.D.learn - How do you check if object o has base type B?
- Enjoys Math (15/15) Feb 03 2016 Consider:
- Rikki Cattermole (9/9) Feb 03 2016 T[] list;
- Gary Willoughby (5/20) Feb 04 2016 if (cast(B)objLis[k])
Consider: class C { } class B : C { } class A : B { } class D : C { } C[] objList; how do we test if objLis[k] is of base type "B"? Ie for [new A(), new B(), new D(), new C()] would give output [true, true, false, false]. ? Thank you! :D
Feb 03 2016
T[] list; foreach(v; list) { if (SpecialT v2 = cast(SpecialT)v) { writeln(v2); } else { writeln("err"); } } That should work.
Feb 03 2016
On Thursday, 4 February 2016 at 05:51:22 UTC, Enjoys Math wrote:Consider: class C { } class B : C { } class A : B { } class D : C { } C[] objList; how do we test if objLis[k] is of base type "B"? Ie for [new A(), new B(), new D(), new C()] would give output [true, true, false, false]. ? Thank you! :Dif (cast(B)objLis[k]) { // It's an instance. }
Feb 04 2016