【C#】Action / Func デリゲート
Action デリゲートActin<T>の意味・T型の引数を1つ、戻り値なし(void)メソッドをとるデリゲート 構文private Action<【引数の型】, ...> 【メソッドを格納する変数】 { get; set; } 【メソッドを格納する変数】 = 【メソッド名】 サンプルprivate string Name { get; set; } private string Occupation { get; set; } private Action<string> Method { get; set; } private void button1_Click(object sender, EventArgs e) { this.Name = "Blank"; this.Occupation = "Blank"; // this.Method = new Action<string>(this.SetOccupation);と同じ this.Method = this.SetOccupation; this.Method("Programmer"); this.label1.Text = this.Name; this.label2.Text = this.Occupation; } private void SetName(string value) { this.Name = value; } private void SetOccupation(string value) { this.Occupation = value; } 出力結果Blank Programmer 参考文献http://itnandemolab.blog70.fc2.com/blog-entry-719.htmlFunc デリゲートFunc<TResult> Func<T, TResult> Func<T1, T2,... TResult> 構文Func<(【引数の型】,)【戻り値の型】> 【メソッド名】 = (【引数】) => 【式】; サンプルprivate void button2_Click(object sender, EventArgs e) { Func<int> f1 = () => 1; this.label1.Text = f1().ToString(); // 出力結果:1 Func<int, int> f2 = (x) => x * 2; this.label2.Text = f2(2).ToString(); // 出力結果:4 Func<int, int, int> f3 = (x, y) => x * y; this.label3.Text = f3(3, 4).ToString(); // 出力結果:12 } |
「C#・中級編」書庫の記事一覧
-
2013/5/29(水) 午後 11:14
-
2013/4/12(金) 午後 11:19
-
2012/10/27(土) 午後 10:29
-
2012/9/25(火) 午前 1:01
-
2012/8/8(水) 午後 10:48
GetOccupation(string)ってGetじゃなくてSetでは???
2013/6/7(金) 午後 3:06 [ 名無し ]
ご指摘の通りでしたので、修正しました。
ありがとうございました。
2013/6/8(土) 午後 0:05 [ dkoba ]