Je vais essayé d'être plus claire
Classe A
une propriété ObjServeur as boolean
une méthode start
If ObjServeur Then
If MyServeur Is Nothing Then MyServeur = New Serveur(Me)
If MyClient IsNot Nothing Then MyClient = Nothing
Else
If MyClient Is Nothing Then MyClient = New Client(Me)
If MyServeur IsNot Nothing Then MyServeur = Nothing
End If
Public MustInherit Class ObjBase 'Classe représentant la base du client/serveur Private _NiveauSonore As String Public Overloads Property NiveauSonore() As String Get Return _NiveauSonore End Get Set(ByVal value As String) _NiveauSonore = value End Set End Property End Class Public Class A 'Classe conteneur de l'objet, servant à définir de quel objet il s'agit Public Enum ObjectTypeConstant CLIENT SERVEUR End Enum Private _Obj As ObjBase Private _ObjectType As ObjectTypeConstant Public ReadOnly Property Obj() As ObjBase Get Return _Obj End Get End Property Public Property ObjectType() As ObjectTypeConstant Get Return _ObjectType End Get Set(ByVal value As ObjectTypeConstant) _ObjectType = value If value = ObjectTypeConstant.CLIENT Then _Obj = New Client Else _Obj = New Serveur End If End Set End Property 'Un constructeur au quel on doit spécifier quel objet il s'agit lors de la création Sub New(ByVal t As ObjectTypeConstant) 'Lors d'un affectation à la propriété, celle-ci modifie la propriété Obj pour 'que celle-ci corresponde au type d'objet attendue. ObjectType = t End Sub End Class Public Class Serveur 'Classe serveur héritante de ObjBase Inherits ObjBase Public _TestPropriete As String Public Property ProprieteDeClassServer() As String Get Return _TestPropriete End Get Set(ByVal value As String) _TestPropriete = value End Set End Property End Class Public Class Client 'Classe client héritante de ObjBase Inherits ObjBase Public _TestPropriete As String Public Property ProprieteDeClassClient() As String Get Return _TestPropriete End Get Set(ByVal value As String) _TestPropriete = value End Set End Property End Class
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question