2017-01-27 207 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);