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
Referência
Instrução Dim (Visual Basic)