我的基类不包含无参数构造函数。
所以我通常可以像这样调用基类构造函数:
public ItemFoldersForm(FormConstructor constuctorOptions): base(constuctorOptions.WindowTitle, constuctorOptions.TabName, constuctorOptions.TabButton)
{
}
所有这些都是非常标准的,但为了便于重用,我希望在派生类中有一个无参数构造函数。这是因为构造函数选项基于随机生成器。
这样的事情:
public ItemFoldersForm()
{
var constructorOptions = ConstructorOptions.GetRandomConstructorOptions();
base: // what to do here....
}
这个概念可以用c#吗?
答案 0 :(得分:4)
您可以定义两个构造函数:
public ItemFoldersForm(FormConstructor constuctorOptions) : base(constuctorOptions.WindowTitle, constuctorOptions.TabName, constuctorOptions.TabButton)
{
}
public ItemFoldersForm() : this(ConstructorOptions.GetRandomConstructorOptions())
{
}
使用默认构造函数生成随机选项,然后将这些选项传递给重载的构造函数,该构造函数将属性传递给基础。
请注意,执行此操作的唯一方法是在构造函数的主体之前。