Me, My, MyBase et MyClass dans Visual Basic

Me, My, MyBase et MyClass en Visual Basic ont des noms similaires, mais des objectifs différents. Cette rubrique décrit chacune de ces entités afin de les distinguer.

Moi

Le mot clé Me permet de faire référence à l’instance spécifique d’une classe ou d’une structure dans laquelle le code est en cours d’exécution. Me se comporte comme une variable objet ou une variable de structure faisant référence à l’instance actuelle. L’utilisation de Me est particulièrement utile pour transmettre des informations sur l’instance en cours d’exécution d’une classe ou d’une structure à une procédure dans une autre classe, structure ou un autre module.

Imaginons par exemple la procédure suivante dans un module.

Sub ChangeFormColor(FormName As Form)  
   Randomize()  
   FormName.BackColor = Color.FromArgb(Rnd() * 256, Rnd() * 256, Rnd() * 256)  
End Sub  

Vous pouvez appeler cette procédure et transmettre l’instance actuelle de la classe Form en tant qu’argument à l’aide de l’instruction suivante.

ChangeFormColor(Me)  

My

La fonctionnalité My permet d’accéder de manière simple et intuitive à un certain nombre de classes .NET Framework, ce qui permet à l’utilisateur Visual Basic d’interagir avec l’ordinateur, l’application, les paramètres, les ressources, etc. Pour obtenir la liste de ces classes, consultez la référence Objets runtime Visual Basic.

MyBase

Le mot clé MyBase se comporte comme une variable objet faisant référence à la classe de base de l’instance actuelle d’une classe. MyBase est couramment utilisé pour accéder aux membres de la classe de base qui sont remplacés ou masqués dans une classe dérivée. MyBase.New est utilisé pour appeler explicitement un constructeur de classe de base à partir d’un constructeur de classe dérivé.

MyClass

Le mot clé MyClass se comporte comme une variable objet faisant référence à l’instance actuelle d’une classe telle qu’elle a été implémentée à l’origine. MyClass est similaire à Me, mais tous les appels de méthode sur celui-ci sont traités comme si la méthode était NotOverridable.

Voir aussi