如何从无参数派生类调用参数化基类构造函数

本文关键字:参数 调用 基类 构造函数 派生 | 更新日期: 2023-09-27 18:05:01

我的基类不包含无参数构造函数。

所以我可以像这样调用基类构造函数:
public ItemFoldersForm(FormConstructor constuctorOptions): base(constuctorOptions.WindowTitle, constuctorOptions.TabName, constuctorOptions.TabButton)
      {
      }

所有这些都是非常标准的,但是为了便于重用,我想在派生类中有一个无参数的构造函数。这是因为构造函数选项是基于随机生成器的。

像这样:

public ItemFoldersForm()
      {
         var constructorOptions = ConstructorOptions.GetRandomConstructorOptions();
         base: // what to do here....
      } 

这个概念在c#中是可能的吗?

如何从无参数派生类调用参数化基类构造函数

可以定义两个构造函数:

public ItemFoldersForm(FormConstructor constuctorOptions) : base(constuctorOptions.WindowTitle, constuctorOptions.TabName, constuctorOptions.TabButton)
{
}
public ItemFoldersForm() : this(ConstructorOptions.GetRandomConstructorOptions())
{
}

使用默认构造函数生成随机选项,然后将其传递给重载构造函数,该构造函数将属性传递给基类。