我不是一个绝对的初学者,但这个似乎超出了我(或者在这一天结束时我可能没精力:))。以下代码片段试图实现什么(取自this SO post)?
public class ObservableStack<T> : Stack<T>, INotifyCollectionChanged, INotifyPropertyChanged
{
//...
protected virtual event PropertyChangedEventHandler PropertyChanged;
//...
event PropertyChangedEventHandler INotifyPropertyChanged.PropertyChanged
{
add { this.PropertyChanged += value; }
remove { this.PropertyChanged -= value; }
}
}
我需要将其转换为VB.NET,对于两个PropertyChanged
事件的存在似乎并不满意。在仍然正确实现界面的同时需要删除哪一个?
答案 0 :(得分:0)
在VB中有两种方法可以做到这一点。首先,最简单的是摆脱INotifyPropertyChanged
的显式实现。将受保护的事件设为公开,不要将明确的事件与add
/ remove
块一起使用。
然而,ObservableCollection<T>
明确地实现了INotifyPropertyChanged
,所以可能有一些很好的理由这样做。通常我会做任何框架所做的事情,因为从历史上看,他们的想法平均比我的好。在这种情况下,我不知道为什么他们这样做,但在最坏的情况下它不会受到伤害。
事实证明you can implement interfaces explicitly in VB.NET。理论上。但是我尝试做了based on this Lovecraftian example code here的事情,并且恐惧和绝望地放弃了。
我认为你定期实施界面会很好。