【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 ]