Me, My, MyBase e MyClass no Visual Basic

Me, My, MyBase e MyClass no Visual Basic têm nomes semelhantes, mas propósitos diferentes. Este tópico descreve cada uma dessas entidades para distingui-las.

Eu

A palavra-chave Me fornece uma maneira de se referir à instância específica de uma classe ou estrutura na qual o código está sendo executado no momento. Me se comporta como uma variável de objeto ou uma variável de estrutura que se refere à instância atual. Usar Me é particularmente útil para passar informações sobre a instância em execução atualmente de uma classe ou estrutura para um procedimento em outra classe, estrutura ou módulo.

Por exemplo, suponha que você tenha o procedimento a seguir em um módulo.

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

Você pode chamar esse procedimento e passar a instância atual da classe Form como um argumento usando a instrução a seguir.

ChangeFormColor(Me)  

Meu

O recurso My oferece acesso rápido e intuitivo a inúmeras classes do .NET Framework, permitindo que o usuário do Visual Basic interaja com o computador, com o aplicativo, com as configurações, com os recursos e assim por diante. Para obter uma lista dessas classes, confira a referência Objetos de Tempo de Execução do Visual Basic.

MyBase

A palavra-chave MyBase se comporta como uma variável de objeto que se refere à classe base da instância atual de uma classe. MyBase é comumente usado para acessar membros de classe base que são substituídos ou sombreados em uma classe derivada. MyBase.New é usado para chamar explicitamente um construtor de classe base de um construtor de classe derivada.

MyClass

A palavra-chave MyClass se comporta como uma variável de objeto que se refere à instância atual de uma classe, conforme implementado originalmente. MyClass é semelhante a Me, mas todas as chamadas de método nele são tratadas como se o método fosse NotOverridable.

Confira também