このヘルプでは、COBOL、C#、VB.NET におけるデリゲートとイベントの使い方について説明します。
$set sourceformat(free) $set ilusing "System" delegate-id MsgArrivedEventHandler. procedure division using by value messag as string. end delegate. class-id a. 01 MsgArrivedEvent type "MsgArrivedEventHandler" event static. *> Delegates must be used with events in COBOL method-id main static. set MsgArrivedEvent to type Delegate::Combine ( MsgArrivedEvent, new MsgArrivedEventHandler(self::My_MsgArrivedEventCallback) ) as type MsgArrivedEventHandler *> Throws exception if obj is null invoke MsgArrivedEvent::Invoke("Test message") set MsgArrivedEvent to type Delegate::Remove ( MsgArrivedEvent, new MsgArrivedEventHandler(self::My_MsgArrivedEventCallback) ) as type MsgArrivedEventHandler invoke self::add_MsgArrivedEvent (new MsgArrivedEventHandler(self::My_MsgArrivedEventCallback)) invoke MsgArrivedEvent::Invoke("Test message 2") end method main. method-id My_MsgArrivedEventCallback static. procedure division using by value str as string. display str end method. end class a.
delegate void MsgArrivedEventHandler(string message); event MsgArrivedEventHandler MsgArrivedEvent; // Delegates must be used with events in C# MsgArrivedEvent += new MsgArrivedEventHandler(My_MsgArrivedEventCallback); // Throws exception if obj is null MsgArrivedEvent("Test message"); MsgArrivedEvent -= new MsgArrivedEventHandler(My_MsgArrivedEventCallback); using System.Windows.Forms; Button MyButton = new Button(); MyButton.Click += new System.EventHandler(MyButton_Click); private void MyButton_Click(object sender, System.EventArgs e) { MessageBox.Show(this, "Button was clicked", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information); }
Delegate Sub MsgArrivedEventHandler(ByVal message As String) Event MsgArrivedEvent As MsgArrivedEventHandler ' or to define an event which declares a delegate implicitly Event MsgArrivedEvent(ByVal message As String) AddHandler MsgArrivedEvent, AddressOf My_MsgArrivedCallback ' Won't throw an exception if obj is Nothing RaiseEvent MsgArrivedEvent("Test message") RemoveHandler MsgArrivedEvent, AddressOf My_MsgArrivedCallback Imports System.Windows.Forms Dim WithEvents MyButton As Button ' WithEvents can't be used on local variable MyButton = New Button Private Sub MyButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyButton.Click MessageBox.Show(Me, "Button was clicked", "Info", _ MessageBoxButtons.OK, MessageBoxIcon.Information) End Sub
これらの例の一部は、ハーディング大学コンピューター サイエンス学部の Frank McCown 博士が作成したもので、クリエイティブ コモンズ ライセンスに基づいて使用が許可されています。