posted on vendredi 19 novembre 2004 14:57 par patrice

[VB.net is not C#] Les interfaces

Autre 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 -nous vous laissons 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.

Comments