Condividi tramite


Procedura: convertire il codice di Implements in una nuova forma di ereditarietà

Aggiornamento: novembre 2007

In Visual Basic 6.0 per l'ereditarietà di interfaccia si utilizza l'istruzione Implements. Nelle versioni più recenti di Visual Basic sono disponibili due tipi di ereditarietà, mediante l'Istruzione Implements e l'Istruzione Inherits. In questo argomento si descrive come convertire un codice mediante queste due opzioni.

Si osservi il codice Visual Basic 6.0 riportato di seguito in questa pagina:

' Account class.
Private mvarBalance As Currency
Private mvarOwner As String

Public Property Let Owner(ByVal vData As String)
    mvarOwner = vData
End Property

Public Property Get Owner() As String
    Owner = mvarOwner
End Property

Public Function Deposit(ByVal amount As Currency) As Currency
End Function

' Savings class.
Private mvarBalance As Currency
Private mvarOwner As String 'local copy

Public Property Let Owner(ByVal vData As String)
    mvarOwner = vData
End Property

Public Property Get Owner() As String
    Owner = mvarOwner
End Property

Public Function Deposit(ByVal amount As Currency) As Currency
End Function

Per eseguire la conversione mediante un'interfaccia comune

  1. Eseguire l'Aggiornamento guidato.

    Nota:

    L'Aggiornamento guidato è uno strumento utilizzato per l'aggiornamento di un'applicazione Visual Basic 6.0 a Visual Basic 2008. Viene avviato automaticamente all'apertura di un progetto di Visual Basic 6.0 in Visual Basic 2008. Per ulteriori informazioni, vedere Procedura: aggiornare un progetto utilizzando l'Aggiornamento guidato Visual Basic.

    La procedura guidata eseguirà la conversione della classe Account in un'interfaccia (_Account) e creerà due classi che implementano tale interfaccia (Account e Savings).

    Interface _Account
        Property Owner() As String
        Function Deposit(ByVal amount As Decimal) As Decimal
    End Interface
    Friend Class Account
        Implements _Account
        Private mvarBalance As Decimal
        Private mvarOwner As String
    
        Public Property Owner() As String Implements _Account.Owner
            Get
                Owner = mvarOwner
            End Get
            Set(ByVal Value As String)
                mvarOwner = Value
            End Set
        End Property
    
        Public Function Deposit(ByVal amount As Decimal) _
            As Decimal Implements _Account.Deposit
        End Function
    End Class
    
    Friend Class Savings
        Implements _Account
    
        Private Function Account_Deposit(ByVal amount As Decimal) _
            As Decimal Implements _Account.Deposit
        End Function
    
        Private Property Account_Owner() As String _
            Implements _Account.Owner
            Get
            End Get
            Set(ByVal Value As String)
            End Set
        End Property
    
        Public Function AddInterest() As Object
        End Function
    End Class
    
  2. Il codice per creare e utilizzare un'istanza della classe Savings potrebbe essere analogo a quello riportato di seguito.

    Dim savings As _Account
    savings = New Savings
    savings.Owner = "Jeff Pike"
    

Se si desidera che Account sia la classe base, modificare l'output della procedura guidata.

Per eseguire la conversione mediante le istruzioni Interface e Implements

  1. Eseguire l'Aggiornamento guidato.

  2. Eliminare la classe Account.

  3. Rinominare la classe _Account in Account.

  4. Nella classe Savings, sostituire _Account con Account.

    Friend Class Savings
        Implements Account
    
        Private Function Account_Deposit(ByVal amount As Decimal) _
            As Decimal Implements Account.Deposit
        End Function
    
        Private Property Account_Owner() As String Implements Account.Owner
            Get
            End Get
            Set(ByVal Value As String)
            End Set
        End Property
    
        Public Function AddInterest() As Object
        End Function
    End Class
    
  5. Il codice per creare e utilizzare un'istanza della classe Savings potrebbe essere analogo a quello riportato di seguito.

    Dim savings As Account
    savings = New Savings
    savings.Owner = "Jeff Pike"
    

Se si desidera che Account sia una classe base, modificare l'output della procedura guidata.

Per eseguire la conversione mediante le istruzioni Class e Inherits

  1. Eseguire l'Aggiornamento guidato.

  2. Eliminare l'interfaccia _Account.

  3. Nella classe Account, rimuovere i riferimenti a _Account nelle istruzioni Implements.

    Friend Class Account
        Private mvarBalance As Decimal
        Private mvarOwner As String
    
        Public Property Owner() As String
            Get
                Owner = mvarOwner
            End Get
            Set(ByVal Value As String)
                mvarOwner = Value
            End Set
        End Property
    
        Public Function Deposit(ByVal amount As Decimal) As Decimal
        End Function
    End Class
    
  4. Nella classe Savings, sostituire Implements _Account con Inherits Account.

  5. Nella classe Savings, rimuovere i membri Owner e Deposit.

    Friend Class Savings
        Inherits Account
    
        Public Function AddInterest() As Object
        End Function
    End Class
    
  6. Il codice per creare e utilizzare un'istanza della classe Savings potrebbe essere analogo a quello riportato di seguito.

    Dim savings As Account
    savings = New Savings
    savings.Owner = "Jeff Pike"
    

Vedere anche

Attività

Procedura: aggiornare un progetto utilizzando l'Aggiornamento guidato Visual Basic

Riferimenti

Istruzione Class (Visual Basic)

Istruzione Inherits

Istruzione Interface (Visual Basic)

Istruzione Implements

Altre risorse

Ereditarietà in Visual Basic

Interfacce in Visual Basic