如何获取类的构造方法?

时间:2016-06-10 22:20:18

标签: class constructor metaprogramming d

我有一个类A,它将另一个类B作为模板参数,我需要获取B的构造函数(有点伪代码):

class A(B)
{
    import std.typecons : Tuple;
    import std.traits : Parameters;
    Tuple!(Parameters!B) _args;
    this(Parameters!B args)
    {
        _args = args;
    }
}

存储构造函数的参数,然后构造一个类B的对象,其参数存储在_args中。

这几乎就是Command模式。

有没有办法让B的构造函数获得Parameters? 或者有更好的方法来实现延迟对象构建吗?

1 个答案:

答案 0 :(得分:4)

是的,构造函数的内部名称是__ctor

class C
{
    this(int a, string b) { }
}

import std.traits;

pragma(msg, Parameters!(C.__ctor));

输出:

(int, string)