R.Tanaka.Ichiro's Blog

主にC# な話題です

目次

Blog 利用状況

ニュース

イベントの連鎖発生のコントロール(その2)

http://blogs.wankuma.com/rti/archive/2008/11/18/161615.aspx
イベントの連鎖発生のコントロール

の続きです。
フラグ処理が共通化できることに気づいて、最終的に以下のようになりました。


var flag = true;
Action<Action> f = x => {
  if (!flag) return;
  flag = false;
  x();
  flag = true;
};
var a = new List<CheckBox> { checkBox2, checkBox3, checkBox4 };
a.ForEach(x => x.CheckedChanged += (s, e) => f(() => checkBox1.Checked = a.All(p => p.Checked)));
checkBox1.CheckedChanged += (s, e) => f(() => a.ForEach(x => x.Checked = checkBox1.Checked));


これは

何ていう難読化ですか?w

匿名メソッドは便利だけど、匿名であるが故に実装が何をしているのかがわかりにくい点に注意が必要です。
「振る舞い」を表す名前は、ある程度は必要ということですね。

投稿日時 : 2008年11月19日 14:31

Feedback

# BxqPeLGhrSMvVp 2011/12/22 21:19 http://www.discreetpharmacist.com/

PjmIAE Gripping! I would like to listen to the experts` views on the subject!!...

タイトル
名前
Url
コメント