PROBLEMA: Usar palavras-chave reservadas como tipos

Traduções deste artigo Traduções deste artigo
ID do artigo: 129448 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Você pode usar palavras-chave reservadas como tipos quando declarar variáveis de objeto; no entanto, essa prática deve ser evitada. Se a configuração de ambiente para "Verificação automática de sintaxe" estiver ativada, você receberá tanto o erro "esperado: novo ou tipo de nome"ou"esperado: nome do tipo," dependendo se você declarar as variáveis com a palavra-chave "New".

Você pode contornar o verificador de sintaxe, colocando quadrado colchetes ([]) ao redor a palavra-chave reservada; no entanto, Visual Basic removerá os colchetes na janela código. Conseqüentemente, edição de qualquer parte da linha de código que tinha colchetes faz com que o código para ser invalidados novamente pelo verificador de sintaxe. Além disso, se você salvar um projeto e recarregá-lo em um momento posterior e tenta executar o programa, você receberá o erro "Erro de sintaxe" até que você adicione que os colchetes de volta.

Causa

Devido a maneira como o Visual Basic internamente lida com o nome de tipos definidos pelo usuário, os colchetes não puder ser preservados e são removidos.

Resolução

A solução é não usar palavras-chave reservadas como tipos.

Situação

Esse comportamento é por design.

Mais Informações

Etapas para reproduzir o problema

  1. Inicie um novo projeto no Visual Basic. O Form1 é criado por padrão.
  2. Adicione o seguinte código ao procedimento Form1_Click.
           Private Sub Form1_Click()
              ABC
           End Sub
    						
  3. No menu ' Inserir ', escolha módulo; Módulo1 será criado.
  4. Adicione o seguinte código à seção declarações gerais do Module1.
           Public Sub ABC()
              Dim MyObject As New [Dim]
              'the brackets will disappear and the above line will appear as
              'Dim MyObject As New Dim
           End Sub
    						
  5. No Menu Inserir, escolha módulo de classe; Class1 será criado. No menu Propriedades, defina a propriedade Name para Dim.
  6. Adicione o seguinte código à seção declarações gerais de Class1 módulo.
           Private MyProperty As Date
    						
  7. Editar a linha de código no Módulo1; por exemplo, redigite a palavra MyObject. A linha de código fica vermelha.
  8. Iniciar o programa, escolha Iniciar o menu Executar (ou pressione F5) e receber "Erro de sintaxe".
  9. Digite novamente os colchetes na linha de código Dim MyObject como New [Dim].
  10. No menu Arquivo, escolha Save Project As e salvar todos os arquivos de projeto.
  11. No menu Arquivo, escolha Open Project e recarregar o projeto que você acabou de salvar.
  12. Inicie o programa pressionando F5 e você receber "Erro de sintaxe".
  13. Se você marcar a linha de código no Module1, você verá que a linha de código novamente se transformou vermelha.
Somente palavras-de chave reservadas são afetados por esse comportamento. Você ainda pode usar outras palavras-chave não reservada como tipos quando declarar variáveis de objeto. O significado de permitir que as palavras-chave não reservadas é que a compatibilidade é mantida em aplicativos como o Excel, que tem um objeto Name (nome é uma palavra-chave não reservada). Portanto, pode especificar o nome (em vez de Excel.Name) em um projeto Visual Basic e fazer referência ao objeto correto.

Uma lista de palavras-chave reservada do Visual Basic é mostrada abaixo.

Lista de palavras-chave reservada

And                      Function                 PsetOr
Any                      Get                      Private
As                       Global                   Public
ByVal                    GoSub                    ReDim
Call                     GoTo                     Rem
Case                     If                       Resume
Close                    Imp                      Return
Const                    Let                      RSet
Debug                    Like                     Set
Declare                  Local                    Static
Dim                      Loop                     Stop
Do                       Lset                     Sub
Each                     Me                       To
Else                     New                      True
Elseif                   Next                     Type
End                      Not                      Typeof
Endif                    Nothing                  Until
Erase                    Null                     Wend
Eqv                      On                       While
Exit                     Open                     With
False                    Option                   Xor
For
				

Propriedades

ID do artigo: 129448 - Última revisão: sábado, 22 de fevereiro de 2014 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 Enterprise Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbprb KB129448 KbMtpt
Tradução automática
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: 129448

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com