Demonstra Passo a passo: Implementar herança com objetos COM

Você pode derivar classes do Visual Basic a partir de Public classes de objetos COM, mesmo aqueles criados em versões anteriores do Visual Basic. sistema autônomo propriedades e métodos das classes herdadas de objetos COM podem ser substituídos ou sobrecarregados assim sistema autônomo propriedades e métodos de qualquer Outros classe base podem ser substituídos ou sobrecarregados.Herança de objetos COM é útil quando você tem uma biblioteca de classes existente que deseja recompilar.

O procedimento a seguir mostra sistema autônomo usar o Visual Basic 6.0 para criar um objeto COM que contém uma classe e usá-lo sistema autônomo uma classe base.

Observação:

Seu computador pode mostrar diferentes nomes ou localizações para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações do Visual Studio.

Para criar o objeto COM que é usado neste explicação passo a passo

  1. No Visual Basic 6.0, abra um novo projeto ActiveX DLL.Um projeto chamado Project1 é criado. Ele tem uma classe chamada Class1.

  2. No Explorer de projeto, clicar com o botão direito do mouse em Projeto1e, em seguida, clique em Propriedades de Projeto1.The Propriedades do projeto caixa de diálogo é exibida.

  3. Sobre o Geral Guia de do Propriedades do projeto caixa de diálogo , alterar o nome do projeto, digitando ComObject1 no Nome do projeto campo.

  4. No Explorer de projeto, clicar com o botão direito do mouse em Class1e, em seguida, clique em Propriedades.The Propriedades janela para a classe é exibida.

  5. Alterar o Name propriedade para MathFunctions.

  6. No Explorer de projeto, clicar com o botão direito do mouse em MathFunctionse, em seguida, clique em Exibir código.The Editor de código é exibida.

  7. Adicione uma variável local para armazenar o valor da propriedade:

    ' Local variable to hold property value
    Private mvarProp1 As Integer
    
  8. Adicionar propriedade Let e propriedade Get procedimentos de propriedade:

    Public Property Let Prop1(ByVal vData As Integer)
       'Used when assigning a value to the property.
       mvarProp1 = vData
    End Property
    Public Property Get Prop1() As Integer
       'Used when retrieving a property's value.
       Prop1 = mvarProp1
    End Property
    
  9. Adicione uma função:

    Function AddNumbers( _
       ByVal SomeNumber As Integer, _
       ByVal AnotherNumber As Integer) _
       As Integer
    
       AddNumbers = SomeNumber + AnotherNumber
    End Function
    
  10. Criar e registrar o objeto COM, clicando em Tornar ComObject1.dll on the Arquivo menu.

    Observação:

    Embora você também pode expor uma classe criada com Visual Basic sistema autônomo um objeto COM, ele não é um objeto COM true e não pode ser usado nesta explicação passo a passo. Para obter detalhes, consulte:Interoperabilidade COM em aplicativos .NET estrutura.

Assemblies de interoperabilidade

O procedimento a seguir, você criará um assembly de interoperabilidade, que atua sistema autônomo uma ponte entre código não gerenciado (sistema autônomo um objeto COM) e o código gerenciado Visual Studio usa. O assembly de interoperabilidade que Visual Basic cria muitos detalhes de sistema autônomo trabalhar com objetos, sistema autônomo identificadores marshaling de interoperabilidade, o processo de empacotamento parâmetros e valores de retorno em tipos de dados equivalente à medida que move e para objetos COM.A referência a Visual Basic aplicativo aponta para o assembly de interoperabilidade, não o objeto COM real.

Para usar um objeto COM Visual Basic 2005 e versões posteriores

  1. Abra um novo projeto de Aplicativo do Windows Visual Basic.

  2. No menu Project, escolha Add Reference.

    A caixa de diálogo Add Reference é exibida.

  3. Sobre o COM guia, clicar duas vezes em ComObject1 no Nome do componente lista e clicar OK.

  4. No menu Project, clique em Add New Item.

    A caixa de diálogo Add New Item é exibida.

  5. No Modelos painel, clicar Classe.

    O nome de arquivo padrão, Class1.vb, aparece no Nome campo.Altere este campo para MathClass.vb e clicar Adicionar.Isso cria uma classe chamada MathClasse exibe seu código.

  6. Adicione o seguinte código na parte superior da MathClass para herdar da classe COM.

    ' The inherited class is called MathFunctions in the base class,
    ' but the interop assembly appends the word Class to the name.
    Inherits ComObject1.MathFunctionsClass
    
  7. Sobrecarregar o método público da classe base, adicionando o seguinte código para MathClass:

    '  This method overloads the method AddNumbers from the base class.
    Overloads Function AddNumbers( _
        ByVal SomeNumber As Integer, _
        ByVal AnotherNumber As Integer) _
        As Integer
    
        Return SomeNumber + AnotherNumber
    End Function
    
  8. Estender a classe herdada adicionando o seguinte código para MathClass:

    '  The following function extends the inherited class.
    Function SubtractNumbers( _
        ByVal SomeNumber As Integer, _
        ByVal AnotherNumber As Integer) _
        As Integer
    
        Return AnotherNumber - SomeNumber
    End Function
    

A nova classe herda as propriedades da classe base no objeto COM, sobrecarrega um método e define um novo método para estender a classe.

Para testar a classe herdada

  1. Adicionar um botão ao formulário de inicialização e clicar duas vezes nele para exibir seu código.

  2. Do botão Click procedimento de manipulador de evento, adicione o seguinte código para criar uma instância de MathClass e chamar os métodos sobrecarregados:

    Dim Result1 As Short
    Dim Result2 As Integer
    Dim Result3 As Integer
    Dim MathObject As New MathClass
    Result1 = MathObject.AddNumbers(4S, 2S) ' Add two Shorts.
    Result2 = MathObject.AddNumbers(4, 2) 'Add two Integers.
    Result3 = MathObject.SubtractNumbers(2, 4) ' Subtract 2 from 4.
    MathObject.Prop1 = 6 ' Set an inherited property.
    
    MsgBox("Calling the AddNumbers method in the base class " & _
           "using Short type numbers 4 and 2 = " & Result1)
    MsgBox("Calling the overloaded AddNumbers method using " & _
           "Integer type numbers 4 and 2 = " & Result2)
    MsgBox("Calling the SubtractNumbers method " & _
           "subtracting 2 from 4 = " & Result3)
    MsgBox("The value of the inherited property is " & _
            MathObject.Prop1)
    
  3. Execute o projeto pressionando F5.

Quando você clica no botão no formulário, o AddNumbers método é chamado pela primeira vez com Short tipo de dados de números, e Visual Basic escolhe o método apropriado da classe base. A segunda telefonar para AddNumbers é direcionada para o método de sobrecarga da MathClass. A terceira telefonar chama o SubtractNumbers método estende a classe. A propriedade na classe base é definida e o valor é exibido.

Próximas etapas

Você deve ter notado que o sobrecarregado AddNumbers função parece ter o mesmo tipo de dados sistema autônomo o método herdado da classe base do objeto COM. Isso ocorre porque sistema autônomo argumentos e sistema autônomo parâmetros do método de classe base são definidos sistema autônomo inteiros de 16 bit no Visual Basic 6.0, mas eles são expostos sistema autônomo inteiros de 16 bit do tipo Short em versões posteriores do Visual Basic. A nova função aceita inteiros de 32 bit e sobrecarrega a função de classe base.

Ao trabalhar com objetos COM, certifique-se de que você verifique se o dimensionar e os tipos de dados de parâmetros.Por exemplo, quando você estiver usando um objeto COM que aceita um objeto de coleção do Visual Basic 6.0 sistema autônomo um argumento, não é possível fornecer uma coleção de uma versão posterior do Visual Basic.Para obter mais informações sobre alterações de tipos de dados, consulte Alterações na Linguagem para Usuários do Visual Basic 6.0.

Herdadas de classes COM métodos e propriedades podem ser substituídos, o que significa que você pode declarar uma propriedade local ou um método que substitui uma propriedade ou método herdado de uma classe COM base.As regras para substituir as propriedades herdadas de COM são semelhantes às regras de substituição Outros propriedades e métodos com as seguintes exceções:

  • Se você substituir qualquer propriedade ou método herdado de uma classe COM, você deve substituir todas as outras propriedades herdadas e métodos.

  • Propriedades que usar ByRef parâmetros não podem ser substituídos.

Consulte também

Tarefas

Como: Criar classes derivadas

Conceitos

Sobrescrevendo propriedades e métodos

Referência

Declaração Inherits

Tipo de dados Short (Visual Basic)

Outros recursos

Interoperabilidade COM em aplicativos .NET estrutura

Alterações na Linguagem para Usuários do Visual Basic 6.0