la property pubblica ti serve per la visibilità all'esterno, e la variabile privata è cmq necessaria. Non ricordo fino a .net 2003, pero' posso anche fare ad esempio:

codice:
    Private _Prop As String

    Public Property Prop() As String
        Get
            Return _Prop
        End Get
        Private Set(ByVal Value As String)
            _Prop = Value
        End Set
    End Property
quindi posso assegnare un valore alla proprietà solo all'interno della classe, dall'esterno sarà solo possibile leggerne il valore.