これにより、クラスに同じ名前のプロパティとイベントを含めることができます。たとえば、次のようになります。
private BusyChangedDelegate BusyChanged;
public event BusyChangedDelegate BusyChanged
{
.
.
.
}
完全なソースを編集
private BusyChangedDelegate BusyChanged;
public event BusyChangedDelegate BusyChanged
{
add
{
BusyChangedDelegate delegate3;
BusyChangedDelegate busyChanged = this.BusyChanged;
do
{
delegate3 = busyChanged;
BusyChangedDelegate delegate4 = (BusyChangedDelegate) Delegate.Combine(delegate3, value);
busyChanged = Interlocked.CompareExchange<BusyChangedDelegate>(ref this.BusyChanged, delegate4, delegate3);
}
while (busyChanged != delegate3);
}
remove
{
BusyChangedDelegate delegate3;
BusyChangedDelegate busyChanged = this.BusyChanged;
do
{
delegate3 = busyChanged;
BusyChangedDelegate delegate4 = (BusyChangedDelegate) Delegate.Remove(delegate3, value);
busyChanged = Interlocked.CompareExchange<BusyChangedDelegate>(ref this.BusyChanged, delegate4, delegate3);
}
while (busyChanged != delegate3);
}
}