我在课堂上有两个事件
public event AcquiredDataEvent OnNewAcquiredData;
public delegate void AcquiredDataEvent(int[] newData);
public ScanStartedEvent ScanStarted;
public delegate void ScanStartedEvent();
我刚才意识到ScanStarted
之前没有关键字event
。很可能是我打字错误的结果,尽管它仍然按预期工作。
这两个事件有什么区别?
答案 0 :(得分:1)
ScanStarted
不是事件。它只是一个委托类型的领域。 ScanStarted
字段。 BTW就像你可以拥有没有支持领域的财产一样
public int Value
{
get { return 42; }
set { Console.WriteLine($"Haha, keep {value} for yourself"); }
}
您可以在没有委托字段的情况下举办活动
public event AcquiredDataEvent OnNewAcquiredData
{
add { Console.WriteLine("Trying to attach some handlers?"); }
remove { Console.WriteLine("Haha, you should attach something first!"); }
}