2017-01-27 9 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 (браузер); control.Position = position; 'и использовать позицию в конструкторе? – Servy

+1

"_Но я хочу использовать свойство initialized Position в моем конструкторе method_" ... Извините, не понял, что вы сказали вообще –

ответ

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); 

 Смежные вопросы

  • Нет связанных вопросов^_^