Dan*_*Tao 5 vb.net compiler-construction compiler-errors interface inotifypropertychanged
当我最初发布这个问题时,我认为我不够清楚.
看看这些截图.
(链接到更大的截图)
请注意我用红色装箱的部分.这里显示的类确实实现了INotifyPropertyChanged,但VB编译器似乎认为声明的PropertyChanged事件与签名不匹配INotifyPropertyChanged.PropertyChanged.
(链接到更大的截图)
在这里,我选择了有问题的代码行.这和下面的截图我真的只是之间剪切和粘贴的相同的一行回文件(即我打Ctrl+ X后跟Ctrl+ V).
(链接到更大的截图)
现在看!切割并粘贴线后,错误就消失了.
这里发生了什么?
我有时会发生这种情况,特别是INotifyPropertyChanged我的经验中的界面,但我不知道问题是否仅限于单个界面(这看起来很奇怪).
假设我有一些这样的代码设置.有一个单一事件的界面.一个类实现该接口.它包括活动.
Public Interface INotifyPropertyChanged
Event PropertyChanged As PropertyChangedEventHandler
End Interface
Public Class Person
Implements INotifyPropertyChanged
Public Event PropertyChanged _
(ByVal sender As Object, ByVal e As PropertyChangedEventArgs) _
Implements INotifyPropertyChanged.PropertyChanged
' more code below '
End Class
Run Code Online (Sandbox Code Playgroud)
不时地,当我构建我的项目时,编译器将突然开始像上面的代码一样被破坏.它会报告Person该类没有实现,INotifyPropertyChanged因为它没有PropertyChanged事件; 或者它会说PropertyChanged事件无法实现,INotifyPropertyChanged.PropertyChanged因为它们的签名不匹配.
这很奇怪,但是这里最奇怪的部分是:如果我只是剪掉线条Event PropertyChanged,然后将其粘贴回来,那么错误就会消失.该项目建立.
有没有人知道这里会发生什么?
该代码对我来说工作正常(Visual Studio 2008),您一定遇到了一些错误。
不管怎样,你也可以这样实现:
Public Class Person
Implements INotifyPropertyChanged
Public Event PropertyChanged As PropertyChangedEventHandler _
Implements INotifyPropertyChanged.PropertyChanged
End Class
Run Code Online (Sandbox Code Playgroud)