我对这堂课的问题有点困惑。我希望Pay按钮生成自定义事件。我在.NET中使用Visual Basic Studio 2010我认为主要问题是在RaiseEvent行中。
Public Class Payment
Public Delegate Sub PaymentMadeEvent(ByVal sender As Object, ByVal e As PaymentMadeEventArgs)
Public Event PaymentEvent As PaymentMadeEvent
Private Property __paymentAmount As Decimal
Public Property paymentAmount As Decimal
Get
Return __paymentAmount
End Get
Set(ByVal value As Decimal)
__paymentAmount = value
PaymentBox.Text = String.Format("{0:c}", __paymentAmount)
End Set
End Property
Private Sub PayButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PayButton.Click
RaiseEvent PaymentEvent(Me, New PaymentMadeEventArgs() {paymentSuccess = True})
End Sub
Public Class PaymentMadeEventArgs : Class EventArgs
Private Property __paymentSuccess As Boolean
Public Property paymentSuccess As Boolean
Get
Return __paymentSuccess
End Get
Set(ByVal value As Boolean)
__paymentSuccess = value
End Set
End Property
End Class
End Class
End Class
无论如何,提前谢谢!
答案 0 :(得分:0)
您的代码中存在多种错误/错误的编码样式。
Private Property __paymentAmount As Decimal
您不需要私有财产,只需使用变量即可。也不要使用__
作为前缀。使用单_
下划线或不使用前缀:
Private _paymentAmount As Decimal
Public Property paymentAmount As Decimal
使用大写:
启动公共属性名称Public Property PaymentAmount As Decimal
Public Class PaymentMadeEventArgs : Class EventArgs
这不是用于继承的正确VB .NET语法。
另外,使用自动属性来减少PaymentSuccess
代码和更好的阅读:
Public Class PaymentMadeEventArgs
Inherits EventArgs
Public Property PaymentSuccess As Boolean
End Class
修复所有内容后,在PayButton_Click
中引发自定义事件:
RaiseEvent PaymentEvent(Me, New PaymentMadeEventArgs() With {.PaymentSuccess = True})