・デリゲートとは
汎用的なコードなどにメソッドの場所を教えてあげて、間接的に呼び出してもらうための機能。

・使われ方
イベント処理でよく使われる。

例えばクリックイベントが管理しているデリゲートの配列に、クラスメソッドのデリゲートを入れておく。
click += EventHandler; //clickがデリゲートの配列、EventHandlerはクラスメソッドの名前。
するとクリックイベントが起きた時に、EventHandlerを呼び出してくれる。

エディタでイベントに対応するクラスメソッドを登録すると思うけど、アレは内部的にはデリゲートを登録している。

・補足
ラムダ式や匿名メソッドはデリゲート型。

C#ではイベント処理(と遅延評価)以外では、あまりデリゲートは使われない。
理由を説明すると混乱すると思うので、経験を積んで考えてくれw