On Sunday, 9 August 2020 at 15:56:31 UTC, Ali Çehreli wrote:
On 8/9/20 7:27 AM, lexxn wrote:
module deneme;
import std.stdio;
interface I {
void methodName();
}
class A : I {
void methodName() {
writeln("A");
}
}
class B : I {
void methodName() {
writeln("B");
}
}
class C : I {
void methodName() {
writeln("C");
}
}
I getClassById(uint id)
{
if (id == 0) {
return cast(A)Object.factory("deneme.A");
} else if(id == 1) {
return cast(B)Object.factory("deneme.B");
} else {
return cast(C)Object.factory("deneme.C");
}
}
void main() {
auto o = getClassById(1);
o.methodName();
}
Ali
This is the solution I will use, at least for now. Thank you Ali.