Ho notato, e come non avrei potuto, la potenza dei Generics in 2005. Oltre a poter consumare i tipi Generics in 2005 possiamo anche crearne di nostri. Il classico esempio da proporre è quello di una Routine che chiameremo Swap e che andrà a ordinare valori di qualsiasi tipo.
Private Sub swap(Of ItemType)(ByRef v1 As ItemType, ByRef v2 As ItemType)
Dim temporary As ItemType
temporary = v1
v1 = v2
v2 = temporary
End Sub
Invoco il metodo swap :
swap(Of Integer)(campo1, campo2)
A questo punto la cosa piu' interessante, a parer mio, è andare a vedere quel che combina il JIT, e infatti JIT ha convertito il valore ItemType in Integer e cosi' tutto il resto della nostra Routine arrivando a questo risultato :
Private SUb Swap(ByRef v1 As Integer, ByRef v2 As Integer)
Dim temporary As Integer
temporary = v1
v1 = v2
v2 = temporary
End Sub
E' chiaro che se volessimo passare la funzione swap a dei tipi String basterebbe cambiare la tipologia di ItemType in string ... A questo punto direi Addio Object