On Thursday, 10 October 2019 at 15:47:58 UTC, Just Dave wrote:
In C# you can do something like:


    if (obj is Person)
    {
        var person = obj as Person;
        // do stuff with person...
    }

where you can check the type of an object prior to casting. Does D have a similar mechanism? It's so widely useful in the C# realm that they even added syntactic sugar to allow:

    if (obj is Person person)
    {
        // do stuff with person...
    }

I would presume since D has reference objects there must exist some mechanism for this...

You mean something like below:

class Person {
    int id;
    this(int x) {
        id = x;
    }
}

void main() {
    auto joe = new Person(1);
    if (is(typeof(joe) == Person)) {
        assert(joe.id == 1);
    }
}

Reply via email to