デリゲートとイベント

★違い
eventをつけて宣言すると、外部ではイベントの追加削除のみだけ
アクセスできるようになる。
★命名規則

種類 命名例
event ○○○EventHandler
delegate ○○○CallBack
public partial class Form1 : Form
{
    public delegate void processEndCallBack(int state);

    public processEndCallBack callback;
    public event processEndCallBack xxxxEvent;

    public Form1()
    {
        InitializeComponent();
    }
}

public class fromfrom
{
    private Form1 aa = new Form1();

    public void aaaa()
    {
        aa.callback.XXX;  //このDelegateにはフルのアクセスができる
         aa.xxxxEvent += new Form1.processEndCallBack(aa_xxxxEvent);  //event宣言したものにはイベントの接続、解除しかアクセスできない
    }

    void aa_xxxxEvent(int state)
    {
        throw new Exception("The method or operation is not implemented.");
    }
}