Cの関数ポインタ、C#のデリゲート(delegate)、C#のイベント(Evnet)の違い

http://eno0514.hatenadiary.jp/entry/20150820/1440012050
関数ポインタは、第一級関数を扱える変数。
デリゲートは関数ポインタの配列。
キーワードeventを使って宣言された特殊な種類のデリゲート。
・イベントはAction型のデリゲートを使う
・イベントは宣言したクラス内からしか実行できない