以下のコンストラクターのプロパティ「Caller」の値を1行に割り当てる便利なプロセスはありますか?
public partial class SecurityPrompt : Form {
Form1 Caller { get; set; }
public SecurityPrompt(Form1 _caller) {
Caller = _caller;
InitializeComponent();
}
}
以下のコンストラクターのプロパティ「Caller」の値を1行に割り当てる便利なプロセスはありますか?
public partial class SecurityPrompt : Form {
Form1 Caller { get; set; }
public SecurityPrompt(Form1 _caller) {
Caller = _caller;
InitializeComponent();
}
}
オブジェクト初期化構文がありますが、コンストラクターを作成してからパブリック プロパティを割り当てます。それを使用したい場合は、ここでコンストラクターをリファクタリングする必要があります。
オブジェクト初期化子の使用:
コンパイラは、最初に既定のインスタンス コンストラクターにアクセスし、次にメンバーの初期化を処理することによって、オブジェクト初期化子を処理します。
これを使用すると、コンストラクターが作成されるまでプロパティは設定されません。したがって、プロパティが存在することを期待してコンストラクターで関数を呼び出すと、そうはなりません。心に留めておきます。
以下のコンストラクターのプロパティ「Caller」の値を1行に割り当てる便利なプロセスはありますか?
いいえ。現在の構文は、コンストラクター内でプロパティを割り当てる「標準的な」方法です。ショートカットはありません ( C++ の初期化リストなど)。C# では、コンストラクタ本体で常にインラインで実行されます。