Fa 'Me' in VB.NET si riferisce solo all'oggetto istanziato?

4

Il "Me" in VB.NET si riferisce solo a un'istanza del tipo? Mi è appena venuto in mente che dal momento che posso fare riferimento a proprietà nella mia classe VB.NET senza usare 'Me', non vedo un motivo per usarlo a questo scopo. Fare riferimento alla variabile in entrambi i casi si riferisce sempre al valore effettivo memorizzato per la proprietà in fase di runtime?

    
posta Johnny 29.10.2012 - 21:50
fonte

2 risposte

7

Dalla Me documentazione su MSDN:

The Me keyword behaves like either an object variable or a structure variable referring to the current instance.

Il caso d'uso descritto è quello di passare l'oggetto corrente a un altro.

    
risposta data 29.10.2012 - 21:52
fonte
1

Esistono due criteri principali per la parola chiave Me .

Puoi usarlo per riferirti in modo univoco a un membro di questa classe. Questo permette alle variabili locali di usare lo stesso nome, anche se questa è una cattiva pratica.

Public Class MeExample

    Public Sub New(Name As String)
        Me.Name = Name
    End Sub

    Public Property Name As String

E puoi usarlo all'interno della classe per usare questa istanza dell'oggetto come parametro in una chiamata di metodo.

    Protected Overridable Sub OnNameChanged(e As EventArgs)
        NameChanged(Me, e)
    End Sub

    Public Event NameChanged As EventHandler
End Class

E per completare l'esempio, ecco l'implementazione completa della proprietà Name in modo che sollevi l'evento NameChanged .

    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
    
risposta data 29.10.2012 - 23:35
fonte

Leggi altre domande sui tag