OVH Cloud OVH Cloud

constructeur caché ???

1 réponse
Avatar
Sylo
Bonjour,

J'ai créé une classe qui se nomme MaClasse avec un constructeur new(para1 as
integer,para2 as integer)

Je voudrais créer une méthode qui me permette de renvoyer, à partir d'une
instance de la classe, une nouvelle instance de la classe.
Dans cette méthode, je voudrais utiliser un autre constructeur qui serait
appeler sans paramètre. Toutefois, je voudrais que ce constructeurs ne soit
accessible qu'à une instance de la classe (et non pas en shared comme un
contructeur classique).

Est ce possible en VB et comment faire ?

Merci

Sylo

1 réponse

Avatar
RAVAILLE James
Bonjour,

Voici ce que je vous propose :
- Créer un constructeur privé sans paramètre.
- Créer une méthode publique d'instance exposant ce constructeur.

Exemple avec une classe Piece :

Public Class Piece

Private m_Reference As String
Private m_Nom As String

Public Sub New(ByVal aReference As String, ByVal aNom As String)
m_Reference = aReference
m_Nom = aNom
End Sub

Private Sub New()
End Sub

Public Function CreerNouvelleInstance() As Piece
return New Piece
End Function
End Class

Le constructeur privé n'est accessible que dans la classe Piece. Une méthode
nommée CreerNouvelleInstance, qui est pubique expose ce constructeur. Tu peux
ainsi modifier cette méthode, afin de spécifier des paramètre, ou des
contrôles supplémentaires avant de créer une nouvelle instance, et agir sur
cette instance.


J'espère que ceci t'aidera à résoudre ton problème.

Cordialement,

--
James RAVAILLE.
MCAD .NET et MCT .NET
http://www.certifdotnet.com


"Sylo" a écrit :

Bonjour,

J'ai créé une classe qui se nomme MaClasse avec un constructeur new(para1 as
integer,para2 as integer)

Je voudrais créer une méthode qui me permette de renvoyer, à partir d'une
instance de la classe, une nouvelle instance de la classe.
Dans cette méthode, je voudrais utiliser un autre constructeur qui serait
appeler sans paramètre. Toutefois, je voudrais que ce constructeurs ne soit
accessible qu'à une instance de la classe (et non pas en shared comme un
contructeur classique).

Est ce possible en VB et comment faire ?

Merci

Sylo