在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)
默认情况下,事件是"自动事件":写入时
public event EventHandler<SomeEventArgs> SomethingHappened;
Run Code Online (Sandbox Code Playgroud)
你得到两个add和的默认行为remove.
请注意,C#设计者无法对自动属性使用相同的语法,因为它会与字段声明冲突.此外,他们需要提供语法,让您可以定义get和set单独定义可见性,因此他们发明了{ get ; set; }语法.