最も簡単な解決策は、実行時に設定できるフックを提供することです。
public Action OnMyNameSet { get; set; }
public Action OnMyNameGet { get; set; }
public string MyName
{
get
{
if (OnMyNameGet != null) { OnMyNameGet(); }
return m_ASD;
}
set
{
if (OnMyNameSet != null) { OnMyNameSet(); }
m_ASD = value;
}
}
使用法:
MyClass c = new MyClass();
c.OnMyNameSet = NameOfSomeMethod;
c.MyName = ...; // also executes NameOfSomeMethod();
または、コンシューマーがアタッチできるイベントを作成することもできます。これは、フックが通常 .NET フレームワークに実装される方法です。
public event EventHandler OnMyNameSet;
public event EventHandler OnMyNameGet;
public string MyName
{
get
{
if (OnMyNameGet != null) { OnMyNameGet(this, EventArgs.Empty); }
return m_ASD;
}
set
{
if (OnMyNameSet != null) { OnMyNameSet(this, EventArgs.Empty); }
m_ASD = value;
}
}
使い方は似ています。ただし、 の+=
代わりに を使用することに注意して=
ください。
MyClass c = new MyClass();
c.OnMyNameSet += NameOfSomeMethod;
c.MyName = ...; // also executes NameOfSomeMethod(sender, eventArgs);