C# 类层次结构中的事件
我看到了一个可观察队列类的实现。我发现有两件事我不明白: 1.名为PropertyChanged和CollectionChanged的事件已在基类中定义。为什么不必使用“new”C# 类层次结构中的事件,c#,events,C#,Events,我看到了一个可观察队列类的实现。我发现有两件事我不明白: 1.名为PropertyChanged和CollectionChanged的事件已在基类中定义。为什么不必使用“new” public virtual event NotifyCollectionChangedEventHandler CollectionChanged; 二,。PropertyChanged事件以simelar方式声明为属性。你为什么这么做 protected virtual event PropertyChange
public virtual event NotifyCollectionChangedEventHandler CollectionChanged;
二,。PropertyChanged事件以simelar方式声明为属性。你为什么这么做
protected virtual event PropertyChangedEventHandler PropertyChanged;
event PropertyChangedEventHandler INotifyPropertyChanged.PropertyChanged
{
add { this.PropertyChanged += value; }
remove { this.PropertyChanged -= value; }
}
这是事件的惯例,事件只是代表的包装,因此,在定义事件时,您可以指定将为此事件注册的代理类型,然后可以添加或删除此事件的代理注册。我看不到在基类中定义了
PropertyChanged
和CollectionChanged
的位置。在我看来,这些可以在observestack
中定义,而不需要new
关键字
另外,
INotifyPropertyChanged.PropertyChanged
事件的实现是显式完成的,因此它必须使用事件访问器语法,即add
和remove
刚刚再次查看了答案,您是对的。认为基类是可观察的集合。谢谢