La surcharge d’opérateur permet de donner aux opérateurs un comportement spécifique quand ils sont appliqués à des types spécifiques. Plus simplement, on peut définir le “comportement” qu’engendre l’utilisation d’un opérateur binaire sur deux objets d’un type défini.

Prenons un exemple on ne peut plus simple, la surcharge de l’opérateur “-” (soustraire).

Public Shared Operator -(ByVal str1 As MyString, _
ByVal str2 As MyString) As String
Return str1.Text.Substring _
(0, str1.Text.Length - _
str2.Text.Length) & str2.Text
End Operator

Les opérateurs surchargés remplacent avantageusement les appels de fonction, car ils nous évitent ici décrire une méthode effectuant la “soustraction” et retravaillant les deux chaines de caractères

Les différents opérateurs qu’il est possible de surcharger sont: “+”, “-”, “*”, “/”, “^”, “<”, “<=”, “>”, “>=”, “<<”, “>>;”, “&”, “Like”, “Mod”, “And”, “Or”, “Xor”, “Not”, “=”, et quelques autres.