Como criar e usar compartilhada membros usando o Visual Basic .NET ou Visual Basic 2005

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 308371
Sumário
Este artigo descreve como implementar membros compartilhados dentro de uma classe, bem como fazer referência a outros membros da classe de propriedades compartilhadas e métodos compartilhados.

Visual Basic .NET ou Visual Basic 2005 fornece os recursos idioma necessário para habilitar a programação orientada a objeto. Central dessa abordagem é a classe que implementa sua funcionalidade usando métodos (funções e procedimentos), propriedades e campos. Eles são chamados de membros.

Membros compartilhados (que são chamados estáticos ou membros da classe em alguns outros idiomas) não estão associados uma instância específica de uma classe e, portanto, são compartilhados por todos os objetos que são criados a partir dessa classe. Para chamar um membro compartilhado, você pode qualificá-la com o nome da classe ou com um objeto dessa classe. Como membros compartilhados não estão associados com instâncias de objetos, eles não tem acesso a membros não compartilhados (que são acessados através de "Me," que representa a instância atual do objeto).

Membros não compartilhados são chamados de membros de instância porque eles estão associados com instâncias do objeto individual. Pense em membros compartilhados como pertencentes aos membros de classe e instância pertencentes a instâncias da classe (ou seja, objetos).

Back to the top

Requisitos

Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
  • Conceitos orientados a objeto
  • Criando classes no Visual Basic .NET ou no Visual Basic 2005
  • Propriedades do Visual Basic .NET ou Visual Basic 2005
Back to the top

Criar um novo Visual Basic .NET ou projeto do Visual Basic 2005 e classe

O código neste projeto demonstra como implementar métodos compartilhados, compartilhadas propriedades e métodos de instância. Parte o código a seguir contém erros deliberados para ilustrar os pontos-chave sobre como acessar outros membros de membros compartilhados. Como resultado, o código compila somente depois que você comentar ou remover as linhas que causam o erro.
  1. Inicie o Visual Studio .NET ou Visual Studio 2005 e crie um novo projeto Visual Basic Console Application chamado SharedMethod.
  2. A partir do menu Project , clique em Add Class para criar uma nova classe.
  3. Adicione dois campos de instância particular da seguinte maneira:
        'Instance variables    Private myInt As Integer    Private myStr As String					
  4. Use a palavra-chave Shared para adicionar dois campos compartilhados particulares da seguinte maneira:
        'Class variables    Private Shared sharedInt As Integer    Private Shared sharedPropValue As String					
  5. Salve o projeto.
Back to the top

Criar o método de instância, compartilhado método e propriedade compartilhada

  1. Adicione o seguinte método de instância chamado mySub :
       'An instance method    Sub mySub()        myInt = 1       ' Ok, same as Me.myInt = 1        sharedInt = 1   ' Ok, same as Class1.sharedInt = 1    End Sub					
  2. Use a palavra-chave Shared para adicionar o seguinte método compartilhado chamado sharedSub . Lembre-se que métodos compartilhados podem acessar somente outros membros compartilhados e não os membros da instância.
        'A class method    Shared Sub sharedSub()        myInt = 1       ' Error, cannot access Me.myInt        sharedInt = 1   ' Ok, same as Class1.sharedInt = 1    End Sub					
  3. Use a palavra-chave Shared para adicionar uma propriedade de seqüência de caracteres compartilhada, somente leitura chamada sharedProp da seguinte maneira:
        'A class property    Shared Property sharedProp() As String        Get            'can only refer to shared variables            Return myStr            'Error, cannot access Me.myStr            Return sharedPropValue  'Ok, same as Return Class1.sharedPropValue		        End Get        Set(ByVal Value As String)            'can only refer to shared variables            myStr = Value              'Error, cannot access Me.myStr            sharedPropValue = Value    'Ok, same as Class1.sharedPropValue = Value		        End Set    End Property					
  4. Salve Class1.vb.
Back to the top

Compilar a classe

  1. Criar a classe e observe que três mensagens de erro aparecem na janela lista de tarefas.

    O primeiro erro ocorre na seguinte linha de código no método SharedSub :
    myInt = 1       ' Error, cannot access Me.myInt						
    como SharedSub é um membro compartilhado, ele é associado com a classe e somente pode acessar membros compartilhados. Não é possível usar "Mim" palavra-chave aqui porque não são membros de instância acessíveis a partir de dentro de um membro compartilhado. Remova a linha de código incorreta.
  2. O segundo erro ocorre na seguinte linha de código em propriedade sharedProp :
    Return myStr      'Error, cannot access Me.myStr						
    remover a linha de código incorreta.
  3. O terceiro erro ocorre na seguinte linha de código em propriedade sharedProp :
    myStr = Value              'Error, cannot access Me.myStr						
    remover a linha de código incorreta.
  4. Recrie a classe.
Back to the top

Criar o módulo de teste

  1. Abra o Module1.vb.
  2. Adicione o seguinte código, que usa o nome da classe para membros de referência Class1, para o procedimento sub Main :
    Dim outStr As String        'Use class to refer to members        Class1.sharedSub()              'Ok        Class1.sharedProp= "Class"      'Ok        outStr = Class1.sharedProp      'Ok        Class1.mySub()                  'Error only available to an                                         'instance					
  3. Adicione o código a seguir, que usa um objeto de referência para referência Class1 membros:
    'Use an object reference to refer to members        Dim MyObject As Class1        MyObject.sharedSub()               'Ok        MyObject.sharedProp = "Obj Ref"    'Ok        outStr = MyObject.sharedProp       'Ok        MyObject.mySub()                   'This will fail at runtime as                                           'MyObject is Nothing					
  4. Salve o projeto.
Back to the top

Compilar o módulo de teste

  1. Crie o projeto.
  2. Observe que uma mensagem de erro é exibida na lista de tarefas de janela. Este erro ocorre na linha de código a seguir:
            Class1.mySub()                  'Error only available to an                                         'instance						
    mysub é um método de instância e, portanto, só está disponível para uma instância de um objeto Class1. Remova a linha de código incorreta.
  3. No menu Debug , clique em Start Without Debugging para executar o aplicativo fora do depurador. Observe que o depurador Just-in-Time (JIT) exibe o erro "System.NullReferenceException". Clique em não na caixa de diálogo Just-In-Time para retornar ao código-fonte.
  4. Essa exceção ocorre porque a linha de código a seguir cria uma referência de objeto em vez do objeto instanciado, que é necessário para executar um método de instância.
            Dim MyObject As Class1					
  5. Para criar um objeto instanciado, modificar o código incorreto da seguinte maneira:
            Dim MyObject As New Class1()					
  6. Salve, recriar e execute o projeto.
Back to the top

Solucionar problemas

  • Você só pode chamar métodos de instância e propriedades em uma instância do objeto. Dentro do método de instância, você pode fazer referência instância e membros compartilhados.
  • Para chamar membros compartilhados, você pode usar a própria classe, uma referência de objeto ou uma instância de objeto. Dentro do membro compartilhado, você pode apenas referenciar outros membros compartilhados.
  • Você não pode referir-se a um membro de instância de uma classe de dentro de um método compartilhado ou dentro de um inicializador de membro compartilhado sem uma instância explícita da classe. me é válido somente dentro de um método de instância.
Back to the top
Referências
Para obter mais informações sobre como usar métodos compartilhados, consulte o tópico "Métodos compartilhados" na seção "Visual Basic Language Specification" a documentação online do Visual Basic .NET ou Visual Basic 2005, visite o seguinte site da Microsoft:Para obter uma descrição geral da programação orientada a objeto no Visual Basic .NET ou no Visual Basic 2005, consulte a seção "Visual Basic. NET" ou "Visual Basic 2005" da documentação online do Visual Basic .NET ou Visual Basic 2005, visite o seguinte site da Microsoft: Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
308230Como definir e usar propriedades no Visual Basic .NET
Back to the top

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 308371 - Última Revisão: 12/06/2006 23:18:59 - Revisão: 4.1

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB308371 KbMtpt
Comentários