Sto riorganizzando le slides per la sessione "Language Revolution" del prossimo workshop, e, dopo una stima della durata della mia parte dedicata a VB 2005 e uno scambio di opinioni con il mio compagno di sessione Raffaele, mi trovo, mio malgrado, nella condizione di dover tagliare alcune parti (e chi mi conosce sa quanto mi dispiace).
Onde evitare di lasciare "incompleta" la panoramica su VB 2005 ho deciso di bloggare qui gli argomenti affichè possiate, scaricando in seguito le slides, avere una copertura totale.
L'argomento #1 che non tratterò sarà : Interface Reimplementation

Questa feature (già presente in C#) vi permette di ridefinire l'implementazione di uno più metodi di un interfaccia all'interno di una classe la quale già offre una propria implementazione della stessa...
...mi spiego...

Public Interface INutile
 Sub DoNothing()
End Interface

Public Class A: Implements INutile
 Private Sub DoThis() Implements INutile.DoNothing
 Console.WriteLine("A impl.")
 
 End Sub
End Class

A questo punto vi piacerebbe ridefinire l'implementazione di INutile.DoNothing all'interno di una classe B che eredita da A.
Con la versione attuale la cosa non è possibile, con VB 2005 potrete scrivere:

Public Class B: Inherits A
 Implements INutile
 Private Sub DoThat() Implements INutile.DoNothing
 Console.WriteLine("B impl.") 

End Sub
End Class

e scrivere
Dim x as INutile
x=new A()
x.DoNothing() ' Scrive "A impl."
x=new B()
x.DoNothing() ' Scrive "B impl."

Questa features al momento non funziona nella May CTP e non cercatela nella documentazione, non è ancora citata... :-)