我在VS2010上已经在同一台计算机上运行了几个月。
对包含以下代码的类没有代码更改:
Private Event ValueChanged(ByVal sender As Object, ByVal e As EventArgs) _
Implements STI.Shared.UI.IEditField.ValueChanged
最近,当我编译时,我收到一个错误,我的类必须实现事件ValueChanged。
当我删除下划线并将Implements部分放到同一行时,它会编译。
如果我撤消checkout并将其恢复为以前的代码,它就会编译。
这只是一种非常奇怪的行为,我想知道是否有人经历过这样的事情。
答案 0 :(得分:1)
我可以重现错误,但只是略有技术性:
Public Interface ITest
'Note here i have specified System.EventArgs
Event ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs)
End Interface
Public Class TestFail
Implements ITest
'And here I have only specified EventArgs, which is fine...
Private Event ValueChanged(ByVal sender As Object, ByVal e As EventArgs) Implements ITest.ValueChanged
End Class
'Unless you declare another class called EventArgs in the same namespace...
Public Class EventArgs
End Class
Public Class TestWin
Implements ITest
'It should work if you just prefix the EventArgs with System though, like so:
Private Event ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Implements ITest.ValueChanged
End Class
这是你将从中获得的错误:
答案 1 :(得分:0)
在这种情况下你不需要下划线。在这种情况下使用下划线甚至不是有效的语法。这看起来有点奇怪。看起来像Implements将被视为CLASS语句的参数,但事实并非如此。它被认为是一个上下文敏感的声明。