VB.NET withevent事件处理

Module Module1

Private WithEvents aemp As employeeevent

Sub Main()

Dim chen As New employeeevent("chenlili", 10000)

aemp = chen

Console.WriteLine(chen.Name & " previous salary is : " & chen.Salary)

aemp.AddSalary(0.3D)

Console.WriteLine(chen.Name & " current salary is : " & chen.Salary)

Console.ReadLine()

End Sub

Public Sub aemp_AddSalaryEvent(ByVal sender As ConsoleApplication1.employeeevent, ByVal e As System.EventArgs) Handles aemp.AddSalaryEvent

MsgBox(sender.Name & " want to invalid add salary !")

End Sub

End Module

Public Class employeeevent

Private m_name As String

Private m_salary As Decimal

Private Const limitvalue As Decimal = 0.07

Public Event AddSalaryEvent(ByVal sender As employeeevent, ByVal e As EventArgs) 'add declare event code here

Public Sub New(ByVal sname As String, ByVal salary As Decimal)

m_name = sname

m_salary = salary

End Sub

Public ReadOnly Property Name() As String

Get

Return m_name

End Get

End Property

Public ReadOnly Property Salary() As Decimal

Get

Return m_salary

End Get

End Property

Public Overridable Overloads Sub AddSalary(ByVal per As Decimal)

If per > limitvalue Then

RaiseEvent AddSalaryEvent(Me, New System.EventArgs())'raise event to come across

Else

m_salary = m_salary * (1 + per)

End If

End Sub

End Class