Class 如何获取类的构造函数方法?
我有一个类Class 如何获取类的构造函数方法?,class,constructor,metaprogramming,d,Class,Constructor,Metaprogramming,D,我有一个类a,它将另一个类B作为模板参数,我需要获取B的构造函数,以便执行以下操作(有些伪代码): 存储构造函数的参数,然后使用存储在\u args中的参数构造类B的对象 这几乎就是命令模式 是否有方法获取B的构造函数以获取其参数? 或者有更好的方法来实现延迟对象构造吗?是的,构造函数的内部名称是\u ctor: class C { this(int a, string b) { } } import std.traits; pragma(msg, Parameters!(C.__c
a
,它将另一个类B
作为模板参数,我需要获取B
的构造函数,以便执行以下操作(有些伪代码):
存储构造函数的参数,然后使用存储在\u args
中的参数构造类B
的对象
这几乎就是命令模式
是否有方法获取B
的构造函数以获取其参数
?
或者有更好的方法来实现延迟对象构造吗?是的,构造函数的内部名称是
\u ctor
:
class C
{
this(int a, string b) { }
}
import std.traits;
pragma(msg, Parameters!(C.__ctor));
这将产生:
(int, string)
尝试B.。\uu-ctor引用它…..谢谢,我意识到我传递给
a
的类中没有包含构造函数,这使得B.\uu-ctor
在这种情况下不存在。请注意,如果有多个构造函数,可以使用\uu-traits(getOverloads,C,“\uu-ctor”)
<代码>MemberFunctionsTuple!(C,“\uu ctor”),无论出于何种原因,都会返回一个空列表。不确定这是否是故意的。
(int, string)