はい、わかりました。それはおそらくばかげた質問ですが、イベントを理解できません。つまり、デリゲートの目的を理解しているということです。avents を作成して処理することはできますが、実際には理解していません。Form1.cs ファイルにイベントを含む次のコードがあるとします。
private void btnSleep_Click(object sender, EventArgs e)
{
_currentPerson.Sleep();
}
private void lvPeople_SelectedIndexChanged(object sender, EventArgs e)
{
if (lvPeople.SelectedItems.Count > 0)
{
_currentPerson = (Person)lvPeople.SelectedItems[0].Tag;
_currentPerson.FellAsleep += _currentPerson_FellAsleep;
}
}
void _currentPerson_FellAsleep(object sender, EventArgs e)
{
lvPeople.SelectedItems[0].BackColor = Color.Aqua;
}
Person クラスには、次のようなものがあります。
public delegate void PersonEventsHandlers(Object sender, EventArgs e);
public event PersonEventsHandlers FellAsleep;
public void Sleep()
{
this._isSleeping = true;
FellAsleep(this, EventArgs.Empty);
}
したがって、すべてが正常に機能します。しかし、この変更を行って Person イベントを忘れると、とにかく機能します。
private void btnSleep_Click(object sender, EventArgs e)
{
_currentPerson.Sleep();
lvPeople.SelectedItems[0].BackColor = Color.Aqua;
}
では、なぜ Person イベントを使用する必要があるのでしょうか?!
ありがとうございました。