【发布时间】:2015-02-13 00:11:21
【问题描述】:
我有这门课:
Public Class Form1ViewModel
#Region "Classes collègues"
Public objInfoViewModel As InfoViewModel
Public objResultViewModel As ResultViewModel
#End Region
#Region "Constructor"
Public Sub New()
objInfoViewModel = New InfoViewModel
objResultViewModel = New ResultViewModel
Dim collegue As IMediatorForm1
AddHandler collegue.ChangeStatut, AddressOf OnChangingStatut
'AddHandler objInfoViewModel.ChangeStatut, AddressOf OnChangingStatut
End Sub
#End Region
#Region "Methods"
Private Sub OnChangingStatut(ByVal intAge As Integer)
If (objResultViewModel IsNot Nothing) Then
If (intAge > 0 AndAlso intAge < 10) Then objResultViewModel.Result = "Enfant"
If (intAge >= 10 AndAlso intAge < 30) Then objResultViewModel.Result = "Adolescent"
If (intAge >= 30 AndAlso intAge < 50) Then objResultViewModel.Result = "Homme"
If (intAge >= 50) Then objResultViewModel.Result = "Vieux"
End If
End Sub
#End Region
End Class
InfoViewModel 和ResultViewModel 是实现IMediatorForm1 接口的两个类。
当我尝试AddHandler objInfoViewModel.ChangeStatut, AddressOf OnChangingStatut 时没有问题。但我想为每个实现IMediatorForm1 接口的类添加事件处理程序。
当我尝试时
Dim collegue As IMediatorForm1
AddHandler collegue.ChangeStatut, AddressOf OnChangingStatut
我得到Null Exception 因为对象collegue 什么都不是。所以
- 如何修复我的代码?
- 为实现接口的每个类添加事件处理程序的最佳方法是什么?
【问题讨论】:
标签: .net vb.net events interface