Does 'Me' in VB.NET refer only to an instantiation of the type? Just occurred to me that since I can reference properties in my VB.NET class without using 'Me', that I don't see a reason for using it for this purpose. Will referencing the variable either way always refer to the actual stored value for the property at runtime?
From the Me documentation on MSDN:
The Me keyword behaves like either an object variable or a structure variable referring to the current instance.
The use case described is that of passing the current object to another one.
There are two main pursoses for the
You can use it to unambiguously refer to a member of this class. This allows local variables to use the same name, though this is poor practice.
Public Class MeExample Public Sub New(Name As String) Me.Name = Name End Sub Public Property Name As String
And you can use it within the class to use this instance of the object as a parameter in a method call.
Protected Overridable Sub OnNameChanged(e As EventArgs) NameChanged(Me, e) End Sub Public Event NameChanged As EventHandler End Class
And to complete the example, here's the full implementation of the
Name property so that it raises the
Public Property Name As String Get Return _Name End Get Set(value As String) If _Name <> value Then _Name = value OnNameChanged(EventArgs.Empty) End If End Set End Property Private _Name As String