>>510
delegate = メソッドを引数にとってインスタンスをつくり、そのメソッドと同じような働きをする。
ま、単純にいえばカプセル化。
イベント機能用だろうから、デリゲート単独で使うことはほとんど無いと思う。

class MainClass
{
delegate void HageDelegate(string hage);//デリゲート宣言

public static void Main()
{
MainClass c = new MainClass();
HageDelegate deleg = new HageDelegate(c.MakeHage); //メソッドを引数に取り、デリゲートのインスタンス作成(戻り値の型、引数の数と型は対象メソッドと同じにする)
deleg("hage"); //対象にしたメソッド(ここではMakeHage)と同じ働きをする。
}

public void MakeHage(string s)//デリゲートの対象メソッド。画面に引数の文字列を表示するだけ
{
Console.WriteLine(s);
}
}