デリゲート
デリゲートは、メソッドへの参照を格納するオブジェクトのことです。解説文だけでは、わかりづらいと思いますので、早速、サンプルプログラムを見ていきましょう。サンプルプログラムは、windowsアプリケーション用のコードを使います。
[TOP]
namespace WindowsApplication1
{
delegate void Delg( );
//デリゲートの宣言
public class X
{
public void C( )
{
MessageBox.Show("C");
}
}
public partial class Form1 : Form
{
static void A( )
{
MessageBox.Show("A");
}
static void B()
{
MessageBox.Show("B");
}
public Form1()
{
InitializeComponent();
Delg del;
del = new Delg(A); //デリゲートにメソッドAの参照を代入
del += new Delg(B); //デリゲートにメソッドBの参照を追加
X x = new X();
del += new Delg(x.C); //デリゲートにメソッドCの参照を追加
del();
}
}
}
デリゲートを利用する際は、先頭でdelegateと宣言し、戻り値 名前(引数)の順に指定します。
デリゲートに追加するメソッドは、デリゲートと同じ、戻り値、引数でなければなりません。
デリゲートのオブジェクトをnew演算子を使って生成し、コンストラクタへの引数に追加するメソッドを指定します。
さらにメソッドを追加するには、+演算子を使って追加します。
デリゲートからメソッドを削除するには、−演算子を使って削除します。
例: デリゲートからメソッドB を削除するには、del -= new Delg(B); のように記述します。
上記サンプルプログラムを実行すると、
ウィンドウズフォームが表示される前に、メッセージボックスがA→B→Cの順にが表示されます。
戻る
※当サイトは、リンクフリーです。