[VB<>C#] Les Interfaces
Une différence entre VB.net et C# : les interfaces. Les interfaces en C# profitent du fait que l'objet représenté par l'interface héritera forcément de System.Object. C'est donc tout naturellement qu'une interface (en c#) implémente les méthodes GetType, ToString etc... de System.Object. Voir ci-dessous :

En VB.net, il en est tout autrement comme vous pouvez le voir ci-dessous.

VB.net ne vous permet pas d'utiliser directement les méthodes ToString, GetType pour les interfaces comme c'est le cas en C#, vous devez caster votre interface en un objet pour arriver au même résultat.
On peut se dire que le VB.net à raison, une interface étant un contrat, et donc la consommation de cette interface ne devrait permettre d'utiliser que les méthodes publiées mais la où le C# à raison, c'est que n'importe quel objet implémentant une interface hérite forcément de System.Object.
Outre la question de la pertinance du choix pour telle ou telle implémentation -je vous laisse discuter de cela dans les commentaires - le fait est que, par exemple, lors ce que l'on récupère une interface, et qu'on veut travailler sur son type, il va falloir créer une variable temporaire, déclarée comme un Object, pour pouvoir enfin accéder à ces méthodes.
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :