I'm trying to get the factory pattern going with classes
class A {}

class B {}

class C {}

auto getClassById(uint id)
{
    if (id == 0) {
        return cast(A)Object.factory("A");
    } else if(id == 1) {
        return cast(B)Object.factory("B");
    } else {
        return cast(C)Object.factory("C");
    }
}

I'm getting 2 errors:
main.d(69): Error: Expected return type of main.A, not main.B:
main.d(67):        Return type of main.Ainferred here.

Also is it possible to completely skip the getClassById function and if I've and array string classes = ["A", "B"] to just cast(classes[0])Object.factory(classes[0]);. I understand that I need to cast classes[0].

Reply via email to