Partilhar via


Membros compartilhados no Visual Basic

Membros compartilhados são propriedades, procedimentos e campos que são compartilhados por todas as ocorrências de uma classe ou estrutura.Algumas linguagens de programação consultem itens sistema autônomo membros estático.

Os campos e propriedades compartilhadas

Propriedades e campos compartilhados são úteis quando você tem informações que é parte de uma classe, mas não é específico para qualquer instância de uma classe.Ao alterar o valor de um campo compartilhado e propriedade, você altera o valor associado com a classe e todas as instâncias da classe.

Por Outros lado, a alteração do valor de um campo não compartilhado ou propriedade associada a qualquer instância não afeta o valor desse campo ou propriedade em outras instâncias da classe.Não compartilhados campos e propriedades existem independentemente para cada instância de uma classe.

Dessa forma, propriedades e campos compartilhados se comportam como variáveis global que podem ser acessadas somente de instâncias de uma classe, ou com a qualificação do nome de classe.Sem campos compartilhados e propriedades, você precisaria usar variáveis em nível de módulo para obter o mesmo efeito.No entanto, as variáveis no nível do módulo podem dificultar suas classes entender e manter.Além disso, usar variáveis em nível de módulo dessa forma viola o conceito de encapsulamento que representam classes.

Procedimentos compartilhados

Procedimentos compartilhados são métodos de classe que não estão associados a uma instância específica de uma classe.Por exemplo, a Cos método definido dentro de Math classe é um método compartilhado. Você pode chamar um procedimento compartilhado sistema autônomo um método de um objeto ou diretamente da classe.

Compartilhada procedimentos e propriedades não tem acesso à instâncias da classe.Por esse motivo, apenas qualificadas referências para membros de dados não compartilhados são permitidas métodos compartilhados.

Observação:

É recomendável que você não escreva código em que você acessa um membro compartilhado por meio de uma instância da classe.Isso ocorre porque o compilador ignora a qualificação de membro compartilhado e sistema autônomo trata sistema autônomo se foram acessado diretamente por meio da classe.Em algumas situações, poderá pretender do objeto qualificado ao executar algum código e, portanto, o Visual Basic compilador gera um aviso para acessar um membro compartilhado através uma instância de uma classe. IntelliSense não exibe os membros compartilhados para uma instância da classe.

Exemplo de membros compartilhados

O exemplo a seguir cria um campo compartilhado, dois campos de instância e um método compartilhado para demonstrar membros compartilhados como operar no código:

Public Class Item
    Public Shared Count As Integer = 1
    Public Shared Sub ShareMethod()
        MsgBox("Current value of Count: " & Count)
    End Sub

    Public Sub New(ByVal Name As String)
        ' Use Count to initialize SerialNumber.
        Me.SerialNumber = Count
        Me.Name = Name
        ' Increment the shared variable
        Count += 1
    End Sub
    Public SerialNumber As Integer
    Public Name As String
    Public Sub InstanceMethod()
        MsgBox("Information in the first object: " & _
            Me.SerialNumber & vbTab & Me.Name)
    End Sub
End Class

Sub TestShared()
    ' Create two instances of the class.
    Dim part1 As New Item("keyboard")
    Dim part2 As New Item("monitor")

    part1.InstanceMethod()
    part2.InstanceMethod()
    Item.ShareMethod()
End Sub

Quando você executa o TestShared duas instâncias da classe do procedimento, são criadas. O construtor usa o campo compartilhada Count ao inicializar o campo de instância SerialNumber, então incrementa Count. Essa técnica retorna automaticamente cada instância um número de série diferente.

Após criar as duas instâncias, o método de instância InstanceMethod é chamado em objetos e o método compartilhado ShareMethod também é chamado. A saída é:

Information in the first object: 1 keyboard

Information in the second object: 2 monitor

Current value of the shared Count field: 3

Consulte também

Conceitos

Estruturas e Classes

Referência

Instrução Dim (Visual Basic)

Cos

Outros recursos

Propriedades de Classe, Campos e Métodos

Estruturas: suas próprias tipos de dados