构造函数执行前的属性初始化

yol*_*ora 2 c# constructor object-initializers

Position我正在使用对象初始值设定项来创建具有如下属性的对象:

var control = new HtmlTextbox(browser)
{
    Position = position;
};
Run Code Online (Sandbox Code Playgroud)

据我所知,它与以下内容相同:

var control = new HtmlTextbox(browser);
control.Position = position;
Run Code Online (Sandbox Code Playgroud)

但我想Position在我的构造函数方法中使用初始化属性。Position有没有办法在不提供作为构造函数参数的情况下做到这一点?

Chr*_*rdt 5

你想要达到的目标是不可能的。

在我看来,你想让构造函数的一些参数可选。您可能想研究一下这种模式:

//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);
Run Code Online (Sandbox Code Playgroud)