主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

C#: オブジェクトイニシャライザで手短にコードを書く

                
 基本的にコードはなるべく短くして可読性を上げるようにする。C#にはそれを達成する手段の一つとして”オブジェクト初期化子”なるものがある。

 通常、クラスの初期化はnew修飾子を使う。そして必要なメンバーを次の行からいじっていく。
WPFを使った例
var window = new Window();
window.Width = 300;
window.Height = 300;


 サイズが300×300のウィンドウを作るには上記のように3行必要となる。これを一行にまとめて書けるのがオブジェクトイニシャライザである。
var window = new Window {Width = 300, Height = 300};

Windowの初期化に特別な引数は必要ないので丸かっこを省略し、代わりにブレースでWidthとHeightに値を渡す式を書いている。WidthとHeightはWindowクラスのプロパティに存在しているものなので、インスタンス作成時にそのまま値をセットできるわけだ。便利。

 通常、クラスのプロパティに値をセットしたい場合、明示的にコンストラクタを呼び出す必要があった。だから一部が同じプロパティを持つインスタンスの作成をコピペで作るのに若干の手間があった。
var grid1 = new Grid();
grid1.Width = 300;
grid1.Height = 300;

var grid2 = new Grid();
grid2.Width = 300;
grid2.Height = 300;

var grid3 = new Grid();
grid3.Width = 300;
grid3.Height = 300;


 オブジェクト初期化子を使うと、コピペでのインスタンス作成が楽になるという利点がある。
var grid1 = new Grid {Width = 300, Height = 300};
var grid2 = new Grid {Width = 300, Height = 300};
var grid3 = new Grid {Width = 300, Height = 300};


 コードがシンプルになるし、そのおかげでコピペも楽になる。使うべきオブジェクト初期化子。
            

コメントの投稿

非公開コメント

プロフィール

hMatoba

Author:hMatoba
Github

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。