2017-01-27 210 views
1

我使用對象初始創建具有Position屬性這樣一個對象:據我所知這是一樣屬性初始化

var control = new HtmlTextbox(browser) 
{ 
    Position = position; 
}; 

var control = new HtmlTextbox(browser); 
control.Position = position; 

但我想在我的構造函數方法中使用初始化的Position屬性。 有沒有辦法做到這一點,而不提供Position作爲構造函數的參數?

+7

不,沒有。但是如果'Position'對於初始化過程非常重要,那麼你應該提供一個構造函數來處理它。 –

+0

你打算如何將你知道的代碼轉換爲'var control = new HtmlTextbox(browser); control.Position = position;'並在構造函數中使用該位置? – Servy

+1

「_But我想在我的構造函數method_中使用initializated Position屬性」...對不起,根本不明白你說的是什麼 –

回答

0

你想實現的是不可能的。

在我看來,你想使構造函數的某些參數可選。你可能想看看這種模式:

//Your constructor 
public HtmlTextbox(TextboxConfiguration config) 
{ 
    //config.Position 
} 

//A Transfer class 
public class TextboxConfiguration 
{ 
    public T Browser { get; set; } 
    public T Position { get; set; } 
} 

//Your code 
var config = new TextboxConfiguration 
{ 
    Browser = browser; 
    Position = position; 
} 
var textbox = new HtmlTextbox(config);