もっとオブジェクト初期化子

昨日、nsharp さんにコメントで教えてもらった、
> initializerはクラスのフィールド宣言部でも使えることに最近気づいたり。
が、使ってみたらとても印象的だったのでちょっと長めのコードを載せてみます。

デザイナで生成したコードを切り貼りして作った恣意的なサンプルですが、これ C#!?ってぐらいには強烈だと思います。

using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
  public class Form2 : Form
  {
    private TextBox textBox1 = new TextBox {
      Location = new Point( 12, 27 ),
      Multiline = true,
      Size = new Size( 268, 144 ),
      TabIndex = 0
    };

    private Label label1 = new Label {
      AutoSize = true,
      Location = new Point( 12, 9 ),
      Size = new Size( 31, 15 ),
      TabIndex = 1,
      Text = "メモ:"
    };

    private Button button1 = new Button {
      Location = new Point( 109, 177 ),
      Size = new Size( 75, 23 ),
      TabIndex = 2,
      Text = "書き込む",
      UseVisualStyleBackColor = true
    };

    public Form2()
    {
      ...
    }
  }
}

ちょっと with 文っぽいですね。
オブジェクト初期化子の中でプロパティ/フィールドの名前がインテリセンスで出るけど、ゲッターしかないものも候補に挙がるのがいけてないトコ。
コンストラクタの中で使っても、オブジェクトごとに初期化がそれぞれブロックの中に入って、ごちゃごちゃしがちな初期化がスッキリしました。
惚れました…。