Get the class name without casting the type

Hipreme msnmancini at hotmail.com
Tue Nov 15 12:25:22 UTC 2022


On Tuesday, 15 November 2022 at 11:42:59 UTC, Alexander Zhirov 
wrote:
> Is there any way to get the name of class B?
>
> ```d
> interface A {
>     string text();
> }
>
> class B : A {
>     override string text() {
>         return ": It's ok!";
>     }
> }
>
> void main() {
>     A[] a = cast(A[]) new B[3];
>     B b = new B();
>     fill(a, b);
>     foreach (val ; a) {
>         writeln(typeof(val).stringof, val.text());
>     }
> }
> ```
>
> Output:
>
> ```sh
> A: It's ok!
> A: It's ok!
> A: It's ok!
> ```

You can do it as `val.classinfo.name`


More information about the Digitalmars-d-learn mailing list