C# - 自动实现的事件

ser*_*0ne 2 c# events

在C#中有自动实现的属性......

public int SomeValue { get; set; }
Run Code Online (Sandbox Code Playgroud)

但为什么没有自动实施的事件呢?

public event EventHandler<SomeEventArgs> SomethingHappened { add; remove; }
Run Code Online (Sandbox Code Playgroud)

das*_*ght 7

默认情况下,事件是"自动事件":写入时

public event EventHandler<SomeEventArgs> SomethingHappened;
Run Code Online (Sandbox Code Playgroud)

你得到两个add和的默认行为remove.

请注意,C#设计者无法对自动属性使用相同的语法,因为它会与字段声明冲突.此外,他们需要提供语法,让您可以定义getset单独定义可见性,因此他们发明了{ get ; set; }语法.