Public Event OnUnitChanged AS UnitChanged
改为
private OnUnitChanged AS UnitChanged
原来的事件处理程序用AddDelegate和RemoveDelegate增删
Public Function AddDelegate(ByVal adelegate As UnitChanged)
If OnUnitChanged Is Nothing Then
OnUnitChanged = adelegate
Else
Dim delegates() As [Delegate] = OnUnitChanged.GetInvocationList()
ReDim Preserve delegates(delegates.Length)
delegates(delegates.Length - 1) = adelegate
OnUnitChanged = UnitChanged.Combine(delegates)
End If
End Function
Public Sub RemoveDelegate(ByVal adelegate As UnitChanged)
OnUnitChanged = UnitChanged.Remove(OnUnitChanged, adelegate)
End Sub