Voici un code qui présente rapidement comment déclarer un opérateur pour une classe d'objet "faite maison".
Source / Exemple :
Sub Main()
Dim Objet1 As New Class1
Objet1.Nombre = 1
Objet1.Texte = "Hello "
Dim Objet2 As New Class1
Objet2.Nombre = 4
Objet2.Texte = "World ! "
'Il est désormais possible d'écrire Objet1 + Objet2 de la même manière que 1 + 2. Ceci est rendu possible par
'la déclaration de l'opérateur "+" à l'intérieur de la classe "Class1" décrite plus bas.
MsgBox((Objet1 + Objet2).Texte & (Objet1 + Objet2).Nombre)
End Sub
Public Class Class1
Public Nombre As Single
Public Texte As String
'Déclaration de l'opérateur "+". Ceci permettra d'écrire des lignes du style Objet3 = Objet1 + Objet2
'En ecrivant Objet1 + Objet2, c'est le code écris dans la description de l'opérateur qui sera executé.
'Ici ecrire Objet1 + Objet2 additionne le nombre de chaque objet passé en argument, et concatenne
'le texte de ces memes objets.
Shared Operator +(ByVal Arg1 As Class1, ByVal Arg2 As Class1) As Class1
Dim ReturnedValue As New Class1 'Objet qui sera retourné par l'opération "+"
ReturnedValue.Nombre = Arg1.Nombre + Arg2.Nombre
ReturnedValue.Texte = Arg1.Texte & Arg2.Texte
Return ReturnedValue 'On retourne le nouvel objet
End Operator
End Class
Conclusion :
Je n'ai pas grand chose à ajouter, je pense que le code parle de lui même, un opérateur se résume donc à une procédure dont l'écriture pour l'appeler est un peu différent, ceci dit, il existe d'autres opérateurs, ici il ne s'agit que d'un exemple mais ils sont nombreux et il en existe même un pour le changement de type par appel à CType - par exemple pour pouvoir ecrire un truc du genre : MsgBox(CType(Objet1, String)) -.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.