Come? non ne parli?... ebbene si!, il tempo non me lo permette e gli argomenti sono tanti...
Operator Overloading vi permette di definire (e ridefinire) degli operatori da applicare a dei tipi da voi creati.
...e per l'ultima volta mi rispiego...

Public Class SetPoint
Public Temperature as Single
Public Sub New (value as Single)
   Me.Temperature=value 
End Sub
End Class

Quello che vorrei ottenere con questa classe è poter scrivere qualcosa tipo:

Dim T1 as new SetPoint(12.3)
Dim T2 as New SetPoint(11)
Dim T3 as SetPoint=T1+T2

Come ben sapete questo non è possibile in quanto l'operatore "+" non è definito per il tipo SetPoint.
Con VB 2005 si potrà aggiungere l'operatore in questo modo:

Public Class SetPoint
 Public Temperature as Single
 Public Sub New (value as Single)
   Me.Temperature=value 
 End Sub

 Public Shared Operator +(ByVal a As SetPoint,ByVal b As SetPoint) As SetPoint
  Return New SetPoint(a.Temperature + b.Temperature)
 End Operator
End Class

Fatto questo il codice compilerà correttamente.
Alcune precisazioni:

-Gli operatori sono statici (shared)
-Alcuni operatori devono essere definiti in coppia (> e <, = e <>, >= e <=, IsTrue e IsFalse)
-Per definire AndAlso vanno definiti gli operatori IsTrue e And

Altra cosa che mi piacerebbe fare è scrivere è:

Dim x as Double=T1

Per far questo devo definire un operatore di conversione, e notate che desidero che la conversione si Implicita (ovvero non voglio usare nessun CDbl(), CType(), Convert.ToXXX()).
Definire un operatore di conversione implicito significa aggiungere alla classe SetPoint
questa parte di codice:

Public Shared Widening Operator CType(ByVal a As SetPoint) As Double
 Return Convert.ToDouble(a.Temperature)
End
Operator

Notate l'uso di Widening e di CType

Per definire un operatore di conversione Esplicito come nel caso:

Dim y as Int32=CInt(T1)

Devo aggiungere alla mia classe:

Public
Shared Narrowing Operator CType(ByVal a As SetPoint) As Int32
 Return
Convert.ToInt32(a.Temperature)
End Operator

Notate la keyword Narrowing che fa si che la conversione avvenga solo utilizzando l'opportuno operatore di conversione.
Su Widening e Narrowing avrei parecchie cose da dire... ;-)