On 2012-12-25 19:26, nrgyzer wrote:

Thanks Adam, that's exactly what I need... is it possible to call a
static method only using TypeInfo_Class or do I need to call the
constructor using create-method? I think using annotation would be very
helpful for my idea:

As far as I know you cannot call any method using TypeInfo_Class.

abstract class A {
static abstract string myName(); // this surely doesn't work
string[] getChildClassNames() {
string[] retArray;
foreach(mod; ModuleInfo) {
foreach(cla; mod.localClasses) {
if (cla is this.classinfo)
retArray ~= cla.myName; // adds "Class B" and "Class C"
}
return retArray;
}
}

class B : A {
override static string myName() { return "Class B"; }
}

class C : A {
override static string myName() { return "Class C"; }
}

But as in the most other languages it's impossible to declare abstract
static methods and I also have no direct access from TypeInfo_Class to
my static attributes and/or methods (or is there any chance without
creating an instance of the class?).

Hence, annotations would be very useful at this point, but is there any
other possibility to do something like shown above...?

You can get the name of a class using "this.classinfo.name" or from any other TypeInfo_Class.

--
/Jacob Carlborg

Reply via email to