タグ

syntaxとobjectに関するkiyo_hikoのブックマーク (2)

  • JavaでもC#みたいなオブジェクト初期化子書けるんですよ - C Sharpens you up

    コンストラクタが特に何もしてくれず、インスタンス作ってから初期化しないといけないタイプのクラスってありますよね。シリアライズのためだったりJavaBeansだったり、あとはふつーのArrayListだから作ってから内容詰め込みます、みたいに。 オブジェクト作ってreturnしたいだけなのに、作ったあとに初期化しないといけないから一時変数作るのがいつも一手余分で、一行で書けるラムダ式がブロックラムダになったりするといらいらもたまるというものです。 C#にはオブジェクト初期化子があるのでその余分な一手が省けますね。 return new Person { Name = "Alice", Age = 20 }; return new List<int> { 1, 1, 2, 3, 5, 8, }; return new Dictionary<int, String> { { 200, "OK"

    JavaでもC#みたいなオブジェクト初期化子書けるんですよ - C Sharpens you up
  • オブジェクト初期化子を使用してオブジェクトを初期化する方法 - C#

    オブジェクト初期化子を使用すると、型のコンストラクターを明示的に呼び出さずに、宣言的な方法で型オブジェクトを初期化できます。 次の例は、指定したオブジェクトでオブジェクト初期化子を使用する方法を示しています。 コンパイラでは、最初にパラメーターなしのインスタンス コンストラクターにアクセスし、メンバーの初期化を処理することで、オブジェクト初期化子が処理されます。 そのため、クラスでパラメーターなしのコンストラクターが private として宣言されている場合、パブリック アクセスを必要とするオブジェクト初期化子は失敗します。 匿名型を定義する場合は、オブジェクト初期化子を使用する必要があります。 詳細については、「クエリで要素のプロパティのサブセットを返す方法」を参照してください。 例 次の例は、オブジェクト初期化子を使用して、新しい StudentName 型を初期化する方法を示していま

  • 1