Comment : définir un opérateur (Visual Basic)
Si vous avez défini une classe ou une structure, vous pouvez définir le comportement d'un opérateur standard (tel que *, <> ou And) lorsqu'au moins une des opérandes est du même type que votre classe ou structure.
Définissez l'opérateur standard comme une procédure d'opérateur dans la classe ou structure. Toutes les procédures d'opérateur doivent être Public Shared.
La définition d'un opérateur sur une classe ou une structure est également appelée surcharge de l'opérateur.
Exemple
L'exemple suivant définit l'opérateur + pour une structure appelée height. La structure utilise des hauteurs exprimées en pieds et pouces. Un pouce équivaut à 2,54 centimètres et un pied équivaut à 12 pouces. Pour garantir des valeurs normalisées (pouces < 12,0), le constructeur exécute une arithmétique modulo 12. L'opérateur + utilise le constructeur pour générer des valeurs normalisées.
Public Shadows Structure height
' Need Shadows because System.Windows.Forms.Form also defines property Height.
Private feet As Integer
Private inches As Double
Public Sub New(ByVal f As Integer, ByVal i As Double)
Me.feet = f + (CInt(i) \ 12)
Me.inches = i Mod 12.0
End Sub
Public Overloads Function ToString() As String
Return Me.feet & "' " & Me.inches & """"
End Function
Public Shared Operator +(ByVal h1 As height,
ByVal h2 As height) As height
Return New height(h1.feet + h2.feet, h1.inches + h2.inches)
End Operator
End Structure
Vous pouvez tester la structure height à l'aide du code suivant.
Public Sub consumeHeight()
Dim p1 As New height(3, 10)
Dim p2 As New height(4, 8)
Dim p3 As height = p1 + p2
Dim s As String = p1.ToString() & " + " & p2.ToString() &
" = " & p3.ToString() & " (= 8' 6"" ?)"
Dim p4 As New height(2, 14)
s &= vbCrLf & "2' 14"" = " & p4.ToString() & " (= 3' 2"" ?)"
Dim p5 As New height(4, 24)
s &= vbCrLf & "4' 24"" = " & p5.ToString() & " (= 6' 0"" ?)"
MsgBox(s)
End Sub
Pour plus d'informations et d'exemples, consultez la page Surcharge d'opérateur dans Visual Basic 2005 (en anglais).
Voir aussi
Tâches
Comment : définir un opérateur de conversion (Visual Basic)
Comment : appeler une procédure d'opérateur (Visual Basic)
Comment : utiliser une classe qui définit des opérateurs (Visual Basic)
Comment : déclarer une structure (Visual Basic)