是的,好吧,这可能是一个愚蠢的问题,但我无法理解事件。我的意思是我了解代表的用途,我可以创建并处理它们,但我实际上并不了解它们。假设我在 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 事件呢?
谢谢你。