gpt4 book ai didi

vb.net - 为什么 VB.NET 编译器会认为接口(interface)没有实现?

转载 作者:行者123 更新时间:2023-12-04 20:59:16 25 4
gpt4 key购买 nike

更新
当我最初发布这个问题时,我认为我不够清楚。
看看这些截图。
alt text
(Link to bigger screenshot here)
注意我用红色框起来的部分。此处显示的类(class) 实现INotifyPropertyChanged ,但 VB 编译器似乎认为 PropertyChanged声明的事件与 INotifyPropertyChanged.PropertyChanged 的签名不匹配.
alt text
(Link to bigger screenshot here)
在这里,我选择了有问题的代码行。在这个和下一个屏幕截图之间,我实际上只是 剪切和粘贴 完全相同的行回到文件中(即,我按 Ctrl + X,然后按 Ctrl + V)。
alt text
(Link to bigger screenshot here)
现在看!剪切并粘贴回线后,错误消失了。
这里发生了什么?

原始问题
我有时会发生这种情况,尤其是 INotifyPropertyChanged界面以我的经验,但我不知道问题是否仅限于单个界面(这看起来很奇怪)。
假设我有一些这样的代码设置。有一个带有单个事件的接口(interface)。一个类实现了该接口(interface)。它包括事件。

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
时不时地,当我构建我的项目时,编译器会突然开始像上面的代码被破坏一样。它将报告 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

关于vb.net - 为什么 VB.NET 编译器会认为接口(interface)没有实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2608907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com