2017-01-27 4 views
1

私はこのようなPositionプロパティを持つオブジェクトを作成するために、オブジェクト初期化子を使用していますプロパティの初期化は、

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

しかし、私はしたいです私のコンストラクタメソッドで初期化されたPositionプロパティを使用する。 コンストラクタの引数としてPositionを指定せずに行う方法はありますか?

+7

いいえ、ありません。しかし、 'Position'が初期化プロセスにとって非常に重要であれば、とにかくそれをとるコンストラクタを提供するべきです。 –

+0

あなたはそれが 'var control = new HtmlTextbox(browser);に変換されていることを知っているコードをどのように使うつもりですか? control.Position = position; 'コンストラクタ内の位置を使用しますか? – Servy

+1

"_私は、私のコンストラクタmethod_"で初期化された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); 
関連する問題