オブジェクトメソッドでもデリゲート
プログラミングC# 第6版 5.1
前回の記事で関数をデリゲートで呼ぶ処理を勉強しましたが、関数だけでなくオブジェクトのメソッドすらもデリゲートとして登録することができます。
using System; delegate void CDelegateClass (int i); class Hoge { public string str; public Hoge (string s) { str = s; } public void Foo (int i) { Console.WriteLine("Hoge.Foo: " + str + ": " + i); } } class Program { static void Main () { Hoge hoge = new Hoge("test1"); CDelegateClass dobj = hoge.Foo; dobj(100); } }
$ main Hoge.Foo: test1: 100
いやぁ面白いですね。