image

Nothing est différent de null

Une des différences les plus importantes entre le VB et le C# est la gestion de la nullité des types.

En VB, on utilise le mot clé Nothing et contrairement à ce que beaucoup de développeurs VB pensent,

le mot clé Nothing n’a (presque) rien à voir avec le null tel que l’on peut le connaitre dans la plupart des langages.

En effet, en VB le Nothing équivaut à Default.

La différence est très importante notamment pour les types valeurs, puisqu’il est tout à fait possible d’assigner Nothing à un type valeur ! Le type prend alors sa valeur par défaut, comme 0 pour les types numériques, ou Date.DateMin pour les dates :

image

 

Bien évidemment, pour les types références, la valeur affectée sera l’équivalent d’un null puisqu’aucune instance n’est créé lors de l’affectation de Nothing.

Pour rappel si l’on essaie de faire “la même chose” en C#, on se retrouve très justement avec une erreur de compilation :

image

Dans le prochain post, nous verrons l’impact de cette différence sur les tests d’égalité à Nothing.

Une réflexion au sujet de « Nothing est différent de null »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *