【发布时间】:2014-06-06 14:30:36
【问题描述】:
在我的 VB.NET 类中,我有一些这样的代码:
Public Class barClass
Private Function foo(data as string)
msgbox("Data is a string: " & data)
End Function
Private Function foo(data as integer)
msgbox("Data is an integer: " & data
End Function
End Class
这显然可以让您传递foo 一个字符串或整数。
我想我可以为事件做同样的事情,所以我尝试:
Public Event FooRaised(data as string)
Public Event FooRaised(data as integer)
我认为这会让我通过传递我从 foo 获得的任何数据来引发事件,但我收到一个错误,说我不能这样做(FooRaised 已经被声明)。
我如何做到这一点?
【问题讨论】:
-
此类事件的处理程序如何工作?
-
你不能重载事件——就这么简单。
-
事件有一个特定的声明,你不能随随便便地发明新的。
-
事件通常被设计成对正在发生的事情不那么模棱两可。最后什么都没有保存,因为某处必须使用
If来确定发生了什么。