2

コードビハインドでUIElementを作成するときはいつでも、次のようなことをします。

Button button = new Button();
button.Content = "Click Me!";

しかし、それから私はどこかでこの構文を見て、それが何と呼ばれているのか知りたいと思いました。.NETの本で使用されているのを見たことがありません。

Button button = new Button { Content="Click Me!" };

簡潔なので、これは明らかに素晴らしいことです。だから私の質問は次のとおりだと思います:

  1. それは何と呼ばれていますか?
  2. この方法でUIElementをインスタンス化することに不利な点はありますか?

また、CornerRadiusやStrokeThicknessなどのプロパティを設定する正しい方法を見つけるのに苦労し、#1の答えがよりインテリジェントな検索クエリを作成するのに役立つかもしれないと思いました。

4

4 に答える 4

5

1:「オブジェクト初期化子」

2:いいえ。特にコードサンプルには非常に便利です;-p

オブジェクト初期化子で実行できないこと:

  • イベントを購読する
  • 同じコレクションインスタンス上のコレクション初期化子と組み合わせる(初期化子は、オブジェクト初期化子(プロパティを設定)またはコレクション初期化子(アイテムを追加)のいずれかです)

不正行為を行うことで、これらの制限を乗り越えることができます。

Button btn;
Form form = new Form { Text = "Hi", Controls = { (btn = new Button()) }};
btn.Click += delegate { ... };
于 2009-12-09T21:55:02.617 に答える
2

オブジェクトイニシャライザーの.Net3.5拡張機能。これは単なる省略メカニズムです。

于 2009-12-09T21:54:58.097 に答える
2

オブジェクト初期化子

ボンネットの下でも同じことをします。2番目のオプションは、2行ではなく1行を使用します。これは、簡潔で便利です。 .NET>=3.5のみ

于 2009-12-09T21:58:57.093 に答える
0

これはオブジェクト初期化子と呼ばれ、欠点はありません。

于 2009-12-09T21:56:22.100 に答える