我正在使用对象初始值设定项来创建一个具有Position
属性的对象,如下所示:
var control = new HtmlTextbox(browser)
{
Position = position;
};
据我所知,它与:
相同var control = new HtmlTextbox(browser);
control.Position = position;
但我想在构造函数方法中使用初始化Position
属性。
有没有办法在不提供Position
作为构造函数的参数的情况下做到这一点?
答案 0 :(得分:2)
您无法实现的目标。
在我看来,你想让构造函数的一些参数可选。您可能想要研究这种模式:
//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);
答案 1 :(得分:0)
另一种方法是使用继承并从那里初始化值,因为最派生类的构造函数最后被调用,但它的值首先被初始化。