次の方法で共有


方法 : Implements コードを新しい形式の継承に変換する

更新 : 2007 年 11 月

Visual Basic 6.0 では、Implements ステートメントをインターフェイスの継承に使用します。新しいバージョンの Visual Basic には、Implements ステートメント を使用する継承と Inherits ステートメント を使用する継承の 2 種類が用意されています。ここでは、このような 2 つのオプションを使用するコードを変換する方法を示します。

以下の Visual Basic 6.0 コードがこのページにあるとします。

' 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

共通のインターフェイスを使用して変換するには

  1. アップグレード ウィザードを実行します。

    yww5xka6.alert_note(ja-jp,VS.90).gifメモ :

    アップグレード ウィザードは、Visual Basic 6.0 アプリケーションを Visual Basic 2008 にアップグレードするためのツールです。Visual Basic 2008 で Visual Basic 6.0 プロジェクトを開くと、このウィザードが自動的に起動します。詳細については、「方法 : Visual Basic アップグレード ウィザードを使ってプロジェクトをアップグレードする」を参照してください。

    ウィザードでは、Account クラスがインターフェイス (_Account) に変換され、このインターフェイスを実装するクラスが 2 つ (Account および 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. Savings アカウントのインスタンスを作成し、使用するコードは、次のようになります。

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

Account を基本クラスにする必要がある場合は、ウィザードで作成されるコードを変更できます。

Interface および Implements を使用して変換するには

  1. アップグレード ウィザードを実行します。

  2. Account クラスを削除します。

  3. _Account クラスの名前を Account に変更します。

  4. Savings クラスで、_Account を 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. Savings アカウントのインスタンスを作成し、使用するコードは、次のようになります。

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

Account を基本クラスにする必要がある場合は、ウィザードで作成されるコードを変更できます。

Class および Inherits を使用して変換するには

  1. アップグレード ウィザードを実行します。

  2. _Account インターフェイスを削除します。

  3. Account クラスで、Implements ステートメント内の _Account への参照を削除します。

    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. Savings クラスで、Implements _Account を Inherits Account に置き換えます。

  5. Savings クラスで、Owner メンバと Deposit メンバを削除します。

    Friend Class Savings
        Inherits Account
    
        Public Function AddInterest() As Object
        End Function
    End Class
    
  6. Savings アカウントのインスタンスを作成し、使用するコードは、次のようになります。

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

参照

処理手順

方法 : Visual Basic アップグレード ウィザードを使ってプロジェクトをアップグレードする

参照

Class ステートメント (Visual Basic)

Inherits ステートメント

Interface ステートメント (Visual Basic)

Implements ステートメント

その他の技術情報

Visual Basic の継承

Visual Basic におけるインターフェイス