2015-07-28 165 views
0

我的基類不包含無參數的構造函數。如何從無參數派生類調用參數化基類構造函數?

所以我通常可以調用基類的構造函數是這樣的:

public ItemFoldersForm(FormConstructor constuctorOptions): base(constuctorOptions.WindowTitle, constuctorOptions.TabName, constuctorOptions.TabButton) 
     { 

     } 

所有這一切是非常標準的,但爲了便於重用我想有一個參數的構造函數在我的派生類。這是因爲構造函數選項基於隨機生成器。

事情是這樣的:

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

是這個概念可以用C#?

回答

4

您可以定義兩個構造函數:

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

public ItemFoldersForm() : this(ConstructorOptions.GetRandomConstructorOptions()) 
{ 
} 

使用默認的構造函數來生成隨機選擇,然後再傳遞到重載的構造函數傳遞性能的基礎。

請注意,唯一的方法是在構造函數的主體之前執行此操作。

相關問題