Compartilhar via


Alterações orientadas a objeto para módulos no Visual Basic

Os membros compartilhados são membros da classe, como propriedades e procedimentos, que estão disponíveis para todas as instâncias de uma classe, mas não estão associados a qualquer instância específica de uma classe.Para obter mais informações sobre membros compartilhados, consulte Membros compartilhados no Visual Basic.

Dados de instância e dados compartilhados

Dados de instância é o conjunto de dados criados quando o New palavra-chave é executada. Por outro lado, os dados compartilhados de uma classe são criados independentemente de qualquer execução o New palavra-chave.

Visual Basic 6,0

Visual Basic 6.0 não suporta dados compartilhados em definições de classe.Para compartilhar dados entre instâncias de classe uma variável global em um módulo é usado.

Visual Basic 2008

Dados compartilhados são declarados, adicionando o Compartilhamento (Visual Basic) modificador para a demonstrativo de demonstrativo de variável sistema autônomo mostrado.

Private Shared totalInstances As Integer

Métodos compartilhados

Visual Basic 6,0

Visual Basic 6.0 não suporta membros de classe compartilhados.Funcionalidade similar é disponível a partir de módulos.O ambiente de tempo de execução somente cria uma instância dos dados em um módulo.Os dados e métodos de um módulo possuem um escopo englobando todo o projeto.Eis um exemplo de uma biblioteca implementada em um módulo:

Public Sub GetTitle(wordXml As String)
    ' Add code here to find title in Xml string.
End Sub

Public Sub ReplaceTitle(wordXml As String, newTitle As String)
    ' Add code here to replace title.
End Sub

Visual Basic 2008

Uma abordagem dos módulos mais orientada a objetos pode ser feita através da utilização de membros de classe compartilhados, se os membros estão relacionados entre si como uma biblioteca, ou se os membros estão relacionados a uma classe existente.A estrutura determinará se todos os membros são compartilhados, ou se uma classe tem uma mistura de membros compartilhados e de instância.Se a classe tem somente membros compartilhados, basta adicionar um construtor particular para impedir que a classe seja instanciada pelo código do cliente.O exemplo a seguir mostra uma classe que não pode ser instanciadas pelo código do cliente e o código do cliente que chama um dos membros.

Public Class WordLibrary
    Public Shared Sub GetTitle(ByVal wordXml As String)
        ' Add code here to find title in Xml string.
    End Sub

    Public Shared Sub ReplaceTitle(ByVal wordXml As String, _
        ByVal newTitle As String)
        ' Add code here to replace title.
    End Sub

    Private Sub New()
        ' This prevents instantiation of the class in the client.
    End Sub
End Class
' Code that calls the library method.
Sub ChangeTheTitle()
    WordLibrary.ReplaceTitle("Old Title", "New Title")
End Sub

Algumas vantagens de usar uma classe em vez de um módulo para essa biblioteca são:

  • A biblioteca tem um nome, WordLibrary, que é explicitamente chamado no código.

  • Os métodos são agrupados em uma classe, indicando as relações de uns com os outros.

  • O uso de um construtor particular torna claro que essa classe fornece um conjunto de métodos utilitários.

  • O código do cliente usa o nome da biblioteca, tornando a organização do projeto clara para o leitor.

No .NET Framework, métodos compartilhados são normalmente usados para fornecer funcionalidade que está relacionada a uma classe, mas não requer uma instância da classe. Um exemplo é o Parse método que é suportado por vários tipos de dados na .NET Framework. The Tipo de Dados Inteiro (Visual Basic) oferece suporte a um Parse método que usa uma seqüência de caracteres sistema autônomo parâmetro. The Parse método retorna o inteiro representado pela seqüência de caracteres. Não faz sentido para o Parse método a ser um método membro. Não há nenhum valor inteiro para manipular, somente uma sequência.

Acessando membros compartilhados

Visual Basic 6,0

Visual Basic 6.0 não suporta membros de classe compartilhados.

Visual Basic 2008

Membros compartilhados pode ser acessado usando o nome de classe ou de uma instância, conforme mostrado.

WordLibrary.ReplaceTitle("Old Title", "New Title")

Métodos compartilhados não podem acessar quaisquer dados de instância a menos que uma referência a uma instância da classe seja passado para o método compartilhado.

Sugestões de atualização

O Visual Basic 6.0 WordLibrary o módulo é atualizado para o código a seguir:

Module WordLibrary
    Public Sub GetTitle(ByRef wordXml As String)
        ' Add code here to find title in Xml string.
    End Sub

    Public Sub ReplaceTitle(ByRef wordXml As String, _
        ByRef newTitle As String)
        ' Add code here to replace title.
    End Sub
End Module

Ao atualizar o código do módulo do Visual Basic 6.0 para Visual Basic 2008, considere o seguinte:

  • Organize métodos e dados de um módulo em classes como métodos e dados compartilhados.

  • Mova métodos de módulo como métodos compartilhados para classes existentes, quando o método está relacionado com a classe.

Consulte também

Conceitos

Membros compartilhados no Visual Basic