独自イベントの作成方法
(2016/12/03 0:04:32 created.)
独自クラスを作成していると、イベントを飛ばしたくなる時があります。C# では event 修飾子を用いてイベントハンドラのデリゲートを定義する必要があります。
Program.cs
namespace Tips_CustomEvent
{
using System;
/// <summary>
/// 設定を表します。
/// </summary>
public class Settings
{
private string _name;
/// <summary>
/// 名前を取得または設定します。
/// </summary>
public string Name
{
get { return this._name; }
set
{
if (this._name != value)
{
this._name = value;
RaiseNameChanged();
}
}
}
/// <summary>
/// Name プロパティ変更時に発生します。
/// </summary>
public event EventHandler<EventArgs> NameChanged;
/// <summary>
/// NameChanged イベントを発行します。
/// </summary>
protected virtual void RaiseNameChanged()
{
var h = this.NameChanged;
if (h != null) h(this, EventArgs.Empty);
}
}
}
このサンプルコードでは、NameChanged という名前のイベントを持っており、Name プロパティの set アクセサ内で、プロパティ値に変更があったときに RaiseNameChanged() メソッドをコールすることで NameChanged イベントを発行しています。
Tweet