C# 入門

ホーム > デリゲート > 匿名メソッドを利用したデリゲート

匿名メソッドを利用したデリゲート

デリゲートではコールバックが基本となるので、メソッドの実体の名前は特に問題視されない場合もあります。

例えば特定のボタンのクリックイベントハンドラは、そのボタンがクリックイベントを発生させたときにのみ呼び出されるものです。

このように特に複数個所から呼び出されることが想定されない場合は、メソッド名が問題になることはありません。むしろ無名で簡潔に書ければそれに越したことは無い場合もあります。

C# 2.0 以降では匿名メソッド (anonymous methods) がサポートされ、デリゲートについても匿名メソッドを用いることで簡潔に記載することが可能です。

delegate キーワードを用いて次のように記述できます。

using System;

namespace DelegateTest1
{
	class Program
	{
		static void Main(string[] args)
		{
			Class1 c1 = new Class1();
			c1.f1 = delegate()
			{
				Console.WriteLine(
					"Hello, I'm anonymous.");
			};
			c1.Test();
		}
	}
}

実行結果は次の通りです。

Hello, I'm anonymous.

引数を受け取る場合は delegate の後の () にパラメータリストを記述すれば OK です。

ホーム > デリゲート > 匿名メソッドを利用したデリゲート