The possibility of a DLang dynamic transfer class type and a member type.
zoujiaqing
zoujiaqing at gmail.com
Thu Nov 14 08:47:15 UTC 2019
Like main function's code:
```D
import std.stdio;
interface Base
{
int count();
}
class A : Base
{
int a = 1;
int b = 4;
int count()
{
return a;
}
}
class B : Base
{
int b = 2;
int a = 3;
int count()
{
return b;
}
}
void test(Type classType, Type propertyType1, Type peropertyType2)
{
// ...
}
void main()
{
Type class1;
Type class2;
class1 = A;
class2 = B;
class3 = A;
auto obj1 = new class1;
auto obj2 = new class2;
if (true)
{
Base obj = cast(Base) obj1;
writeln(obj.count());
Base obj = cast(Base) obj2;
writeln(obj.count());
}
assert(checkClass(class1, class2));
assert(checkClass(class1, class3));
test(A, A.a, B.b);
}
```
More information about the Digitalmars-d
mailing list