ID do artigo: 110264 - Última revisão: quinta-feira, 9 de janeiro de 2003 - Revisão: 1.1 INFO: Microsoft Consulting Services convenções de nomeação para o Visual Basic
Nesta páginaSumárioÉ uma boa idéia estabelecer convenções de nomenclatura para o seu código do Visual Basic. Este artigo fornece as convenções de nomenclatura usadas pelo Microsoft Consulting Services (MCS). Este documento é um superconjunto de convenções de codificação do Visual Basic encontrado no Visual Basic "Guia do programador do". Observação: Os controles de terceiros mencionados neste artigo são fabricados por fornecedores independentes da Microsoft. A Microsoft não oferece garantia, implícita ou não, em relação ao desempenho ou à confiabilidade desses controles. Mais InformaçõesConvenções de nomenclatura ajudam os programadores de Visual Basic:
Definindo opções de ambienteUse a opção EXPLICIT. Declarar todas as variáveis para economizar tempo de programação, reduzindo o número de bugs causados por erros de ortografia (por exemplo, aUserNameTmp vs. sUserNameTmp versus sUserNameTemp). Na caixa de diálogo Opções de ambiente, defina Solicitar declaração de variável como Sim. A instrução Option Explicit requer que você declare as variáveis em seu programa do Visual Basic. Salve arquivos como texto ASCII. Salve formulário (.FRM) e o módulo (.BAS) arquivos como texto ASCII para facilitar o uso de sistemas de controle de versão e minimizar os danos que podem ser causados por corrupção do disco. Além disso, você pode:
Objeto convenções de nomeação para objetos padrãoAs tabelas a seguintes definem os prefixos de nome de objeto padrão de MCS. Esses prefixos são consistentes com aquelas documentadas no guia de programadores do Visual Basic.Prefix Object Type Example ------------------------------------------------------- ani Animation button aniMailBox bed Pen Bedit bedFirstName cbo Combo box and drop down list box cboEnglish chk Checkbox chkReadOnly clp Picture clip clpToolbar cmd (3d) Command button (3D) cmdOk (cmd3dOk) com Communications comFax ctr Control (when specific type unknown) ctrCurrent dat Data control datBiblio dir Directory list box dirSource dlg Common dialog control dlgFileOpen drv Drive list box drvTarget fil File list box filSource frm Form frmEntry fra (3d) Frame (3d) fraStyle (fra3dStyle) gau Gauge gauStatus gpb Group push button gpbChannel gra Graph graRevenue grd Grid grdPrices hed Pen Hedit hedSignature hsb Horizontal scroll bar hsbVolume img Image imgIcon ink Pen Ink inkMap key Keyboard key status keyCaps lbl Label lblHelpMessage lin Line linVertical lst List box lstPolicyCodes mdi MDI child form mdiNote mpm MAPI message mpmSentMessage mps MAPI session mpsSession mci MCI mciVideo mnu Menu mnuFileOpen opt (3d) Option Button (3d) optRed (opt3dRed) ole OLE control oleWorksheet out Outline control outOrgChart pic Picture picVGA pnl3d 3d Panel pnl3d rpt Report control rptQtr1Earnings shp Shape controls shpCircle spn Spin control spnPages txt Text Box txtLastName tmr Timer tmrAlarm vsb Vertical scroll bar vsbRate Objeto convenção de nomenclatura para objetos de banco de dadosPrefix Object Type Example ------------------------------------------ db ODBC Database dbAccounts ds ODBC Dynaset object dsSalesByRegion fdc Field collection fdcCustomer fd Field object fdAddress ix Index object ixAge ixc Index collection ixcNewAge qd QueryDef object qdSalesByRegion qry (suffix) Query (see NOTE) SalesByRegionQry ss Snapshot object ssForecast tb Table object tbCustomer td TableDef object tdCustomers Convenções de nome de menuOs aplicativos usam com freqüência uma abundância de controles de menu. Como resultado, você precisa de um conjunto diferente de convenções de nomenclatura para esses controles. Prefixos de controle de menu devem ser estendidos além do rótulo mnu inicial, adicionando um prefixo adicional para cada nível de aninhamento, com a legenda do menu final no final da seqüência de nome. Por exemplo:Menu Caption Sequence Menu Handler Name Help.Contents mnuHelpContents File.Open mnuFileOpen Format.Character mnuFormatCharacter File.Send.Fax mnuFileSendFax File.Send.Email mnuFileSendEmail Convenções de nomenclatura para outros controlesPara novos controles não listados acima, tente acompanham um prefixo de três caracteres exclusivo. No entanto, é mais importante ser desmarque que ao usar três caracteres.Para estendem controles derivados, como uma caixa de listagem avançada, os prefixos acima para que não haja nenhum confusão sobre qual controle está realmente sendo usado. Uma abreviação de minúscula para o fabricante também normalmente seria adicionada para o prefixo. Por exemplo, uma instância do controle criada a partir do Professional Visual Basic quadro 3D foi usa um prefixo de fra3d para evitar confusão sobre os quais o controle realmente está sendo usado. Um botão de comando do MicroHelp poderia usar cmdm para diferenciá-lo do botão de comando padrão (cmd). Controles de terceirosCada controle de terceiros usado em um aplicativo deve constar na seção de comentário de visão geral do aplicativo, fornecendo o prefixo usado para o controle, o nome completo do controle e o nome do fornecedor do software:Prefix Control Type Vendor cmdm Command Button MicroHelp Nomeação de rotina e variávelNomes de variável e função têm a seguinte estrutura: <prefix><body><qualifier><suffix>Part Description Example -------------------------------------------------------------------------- <prefix> Describes the use and scope of the variable. iGetRecordNext <body> Describes the variable. iGetNameFirst <qualifier> Denotes a derivative of the variable. iGetNameLast <suffix> The optional Visual Basic type character. iGetRecordNext% As tabelas a seguintes definem prefixos de nome de variável e a função são baseados em notação húngara C para o Windows. Esses prefixos devem ser usados com todas as variáveis e nomes de função. Uso de sufixos básicos antigos (como %, &, #, etc.) são desencorajado. Variável e prefixos de nome de função:
Prefix Converged Variable Use Data Type Suffix
--------------------------------------------------------------------------
b bln Boolean Integer %
c cur Currency - 64 bits Currency @
d dbl Double - 64 bit Double #
signed quantity
dt dat Date and Time Variant
e err Error
f sng Float/Single - 32 Single !
bit signed
floating point
h Handle Integer %
i Index Integer %
l lng Long - 32 bit Long &
signed quantity
n int Number/Counter Integer %
s str String String $
u Unsigned - 16 bit Long &
unsigned quantity
udt User-defined type
vnt vnt Variant Variant
a Array
Escopo e prefixos de uso: Prefix Description g Global m Local to module or form st Static variable (no prefix) Non-static variable, prefix local to procedure v Variable passed by value (local to a routine) r Variable passed by reference (local to a routine) iSend - representa uma contagem do número de mensagens enviadas Cada um desses nomes variáveis algo muito diferente Informe um programador. Essas informações são perdidas quando o nome da variável é reduzido para enviar %. Prefixos de escopo como g e m também ajudam a reduzir o problema de contenção de nome especialmente em vários projetos. bSend - sinalizador booleano de um definindo o sucesso da última operação de envio hSend - um identificador da interface de comunicação Notação húngara também amplamente usada pelo Windows C programadores e constantemente mencionada na documentação do produto Microsoft e no setor livros de programação. Além disso, se o vínculo entre os programadores C e programadores que usam o Visual Basic tornará muito mais seguro como a Visual C++ desenvolvimento sistema ganhos força. Essa transição resultará em muitos programadores de Visual Basic movendo a C para a primeira vez e muitos programadores com freqüência mover para frente e para trás entre os dois ambientes. O corpo da variável e nomes de rotinaO corpo de uma variável ou rotina nome deve usar maiúsculas e minúsculas e deve ser tão longo quanto necessário para descrever sua finalidade. Além disso, os nomes de função devem começar com um verbo, como InitNameArray ou CloseDialog.Para termos usados com freqüência ou longos, abreviações padrão são recomendadas para ajudar a manter comprimentos de nome razoável. Em geral, nomes de variáveis maiores que 32 caracteres podem ser difícil ler em monitores VGA. Ao usar abreviações, certifique-se de que eles são consistentes em todo o aplicativo inteiro. Alternando aleatoriamente Not e Count dentro de um projeto irá causar confusão desnecessária. Qualificadores de variável e nomes de rotinaVariáveis relacionadas e rotinas costumam ser usadas para gerenciar e manipular um objeto comum. Nesses casos, use os qualificadores padrão para rotular as variáveis derivadas e rotinas. Embora colocando o qualificador após o corpo do nome pode parecer um pouco estranho (como em sGetNameFirst, sGetNameLast em vez de sGetFirstName, sGetLastName), essa prática ajudará a ordem lista esses nomes juntos na rotina Visual Basic editor, tornar mais fácil compreender a lógica e estrutura do aplicativo. A tabela a seguir define os qualificadores comuns e seus significados padrão:
Qualifier Description (follows Body)
--------------------------------------------------------------------------
First First element of a set.
Last Last element of a set.
Next Next element in a set.
Prev Previous element in a set.
Cur Current element in a set.
Min Minimum value in a set.
Max Maximum value in a set.
Save Used to preserve another variable that must be reset later.
Tmp A "scratch" variable whose scope is highly localized within the
code. The value of a Tmp variable is usually only valid across
a set of contiguous statements within a single procedure.
Src Source. Frequently used in comparison and transfer routines.
Dst Destination. Often used in conjunction with Source.
Tipos definidos pelo usuárioDeclare tipos definidos pelo usuário em todas em maiúsculas com _TYPE acrescentado ao final do nome do símbolo. Por exemplo:Constantes de nomeaçãoO corpo de nomes de constantes deve ser UPPER_CASE com sublinhados (_) entre as palavras. Embora padrão constantes do Visual Basic não incluem informações húngaras, prefixos como i, s, g e m pode ser muito útil em entender o valor e o escopo de uma constante. Para nomes de constantes, siga as mesmas regras como variáveis. Por exemplo:Tipo de dados VariantSe você souber que uma variável sempre irá armazenar dados de um determinado tipo, o Visual Basic pode manipular os dados com mais eficiência se você declarar uma variável do tipo.No entanto, o tipo de dados variant pode ser extremamente útil ao trabalhar com bancos de dados, mensagens, DDE ou OLE. Muitos bancos de dados permitem NULL como um valor válido para um campo. Seu código precisa para distinguir entre NULL, 0 (zero), e "" (cadeia de caracteres em branco). Muitas vezes, esses tipos de operações podem usar uma rotina de serviço genérico que não precisa saber o tipo de dados que recebe a processar ou passar os dados. Por exemplo: Comentando o códigoTodas as funções e procedimentos devem começar com um breve comentário que descreve as características funcionais de rotina (o que ele faz). Essa descrição não deve descrever os detalhes de implementação (como ele faz isso) porque essas geralmente alteram ao longo do tempo, resultando em trabalho de manutenção de comentário desnecessários ou pior ainda, comentários errados. O próprio código e os comentários in-line ou locais necessários descreverá a implementação.Parâmetros passados para uma rotina devem ser descritos quando suas funções não são óbvias e quando a rotina espera os parâmetros para estar em um intervalo específico. Função retornar valores e variáveis globais que são alteradas pela rotina (especialmente por meio de parâmetros de referência) também devem ser descritas no início de cada rotina. Comentário do cabeçalho rotina blocos devem parecer como este (consulte a próxima seção "Formatação código O" para obter um exemplo):
Section Comment Description
--------------------------------------------------------------------------
Purpose What the routine does (not how).
Inputs Each non-obvious parameter on a separate line with
in-line comments
Assumes List of each non-obvious external variable, control, open file,
and so on.
Returns Explanation of value returned for functions.
Effects List of each effected external variable, control, file, and
so on and the affect it has (only if this is not obvious)
Variáveis, controles e rotinas devem ser nomeadas claramente suficiente que comentários in-line é necessário apenas para detalhes de implementação complexos ou não-intuitiva. Uma descrição de visão geral do aplicativo, enumerar objetos de dados primária, rotinas, algoritmos, diálogos, dependências de sistema de banco de dados e arquivo e assim por diante devem ser incluído no início do módulo .BAS que contém declarações de constantes genéricas de Visual Basic do projeto. Observação: A janela Project inerentemente descreve a lista de arquivos em um projeto, portanto, esta seção de visão geral somente precisa fornecer informações sobre os arquivos mais importantes e módulos ou os arquivos que a janela de projeto não lista, como inicialização (inicialização) ou arquivos de banco de dados. Seu código de formataçãoComo muitos programadores usam ainda exibe VGA, imóveis tela deve ser conserved tanto quanto possível, permitindo ainda para refletir a estrutura lógica e o aninhamento de formatação de código.Bloco padrão, guia aninhamento recuos deve conter duas a quatro espaços. Mais de quatro espaços é desnecessários e pode causar instruções para ser ocultos ou acidentalmente truncados. Menos de dois espaços não mostra suficientemente aninhamento de lógica. Na Base de dados de Conhecimento da Microsoft, usamos um recuo de espaço de três. Use a caixa de diálogo Opções de ambiente para definir a largura da tabulação padrão. O comentário de visão geral sobre funcional de uma rotina deve ser recuado um espaço. As instruções de nível mais altos que execute o comentário de visão geral devem ser recuada uma guia, com cada bloco aninhado recuado em uma guia adicional. Por exemplo: OperadoresSempre use um e comercial (&) quando concatenando cadeias de caracteres e use o sinal de mais (+) ao trabalhar com valores numéricos. Usar um sinal de mais (+) com valores não-numéricos, pode causar problemas durante a operação em duas variantes. Por exemplo:EscopoVariáveis sempre devem ser definidas com o menor escopo possível. Variáveis globais possam criar máquinas de estado extremamente complexo e fazer a lógica de um aplicativo extremamente difícil de entender. Variáveis globais também dificultam a reutilização e a manutenção do seu código muito mais. Variáveis no Visual Basic podem ter o escopo a seguir:
Scope Variable Declared In: Visibility
--------------------------------------------------------------------------
Procedure-level Event procedure, sub, or Visible in the
function procedure in which
it is declared
Form-level, Declarations section of a form Visible in every
Module-level or code module (.FRM, .BAS) procedure in the
form or code
module
Global Declarations section of a code Always visible
module (.BAS, using Global
keyword)
Se você deve usar variáveis globais, é recomendável para declarar todos eles em um único módulo e agrupá-los pela função. Dar o módulo de um nome significativo que indica sua finalidade, como GLOBAL.BAS. Com exceção de funções, procedimentos e variáveis globais (que não devem ser passadas) só devem operar em objetos que são passados para eles. Variáveis globais que são usados em rotinas devem ser identificados na área de comentário geral no início da rotina. Além disso, passe argumentos para sub-rotinas e funções usando ByVal, a menos que explicitamente deseje alterar o valor de argumento transmitido. Escreva código modular sempre que possível. Por exemplo, se seu aplicativo exibe uma caixa de diálogo, coloque todos os controles e código necessários para executar tarefas da caixa de diálogo em um único formulário. Isso ajuda a manter o código do aplicativo organizado em componentes úteis e minimiza a sobrecarga de tempo de execução. Controles de terceirosObservação: Os produtos discutidos abaixo são fabricados por fornecedores independentes da Microsoft. A Microsoft não oferece garantia, implícita ou não, em relação ao desempenho ou à confiabilidade desses produtos.A tabela a seguir lista fornecedor de terceiros padrão nome prefixo caracteres a ser usado com prefixos de controle: Vendor Abbv ------------------------- MicroHelp (VBTools) m Pioneer Software p Crescent Software c Sheridan Software s Other (Misc) o
Control Control Abbr Vendor Example VBX File
Type Name Name
--------------------------------------------------------------------------
Alarm Alarm almm MicroHelp almmAlarm MHTI200.VBX
Animate Animate anim MicroHelp animAnimate MHTI200.VBX
Callback Callback calm MicroHelp calmCallback MHAD200.VBX
Combo Box DB_Combo cbop Pioneer cbopComboBox QEVBDBF.VBX
Combo Box SSCombo cbos Sheridan cbosComboBox SS3D2.VBX
Check Box DB_Check chkp Pioneer chkpCheckBox QEVBDBF.VBX
Chart Chart chtm MicroHelp chtmChart MHGR200.VBX
Clock Clock clkm MicroHelp clkmClock MHTI200.VBX
Button Command cmdm MicroHelp cmdmCommandButton MHEN200.VBX
Button
Button DB_Command cmdp Pioneer cmdpCommandButton QEVBDBF.VBX
Button (Group) Command cmgm MicroHelp cmgmBtton MHGR200.VBX
Button
(multiple)
Button Command cmim MicroHelp cmimCommandButton MHEN200.VBX
Button
(icon)
CardDeck CardDeck crdm MicroHelp crdmCard MHGR200.VBX
Dice Dice dicm MicroHelp dicmDice MHGR200.VBX
List Box (Dir) SSDir dirs Sheridan dirsDirList SS3D2.VBX
List Box (Drv) SSDrive drvs Sheridan drvsDriveList SS3D2.VBX
List Box (File) File List film MicroHelp filmFileList MHEN200.VBX
List Box (File) SSFile fils Sheridan filsFileList SS3D2.VBX
Flip Flip flpm MicroHelp flpmButton MHEN200.VBX
Scroll Bar Form Scroll fsrm MicroHelp fsrmFormScroll ???
Gauge Gauge gagm MicroHelp gagmGauge MHGR200.VBX
Graph Graph gpho Other gphoGraph XYGRAPH.VBX
Grid Q_Grid grdp Pioneer grdpGrid QEVBDBF.VBX
Scroll Bar Horizontal hsbm MicroHelp hsbmScroll MHEN200.VBX
Scroll Bar
Scroll Bar DB_HScroll hsbp Pioneer hsbpScroll QEVBDBF.VBX
Graph Histo hstm MicroHelp hstmHistograph MHGR200.VBX
Invisible Invisible invm MicroHelp invmInvisible MHGR200.VBX
List Box Icon Tag itgm MicroHelp itgmListBox MHAD200.VBX
Key State Key State kstm MicroHelp kstmKeyState MHTI200.VBX
Label Label (3d) lblm MicroHelp lblmLabel MHEN200.VBX
Line Line linm MicroHelp linmLine MHGR200.VBX
List Box DB_List lstp Pioneer lstpListBox QEVBDBF.VBX
List Box SSList lsts Sheridan lstsListBox SS3D2.VBX
MDI Child MDI Control mdcm MicroHelp mdcmMDIChild ???
Menu SSMenu mnus Sheridan mnusMenu SS3D3.VBX
Marque Marque mrqm MicroHelp mrqmMarque MHTI200.VB
Picture OddPic odpm MicroHelp odpmPicture MHGR200.VBX
Picture Picture picm MicroHelp picmPicture MHGR200.VBX
Picture DB_Picture picp Pioneer picpPicture QEVBDBF.VBX
Property Vwr Property pvrm MicroHelp pvrmPropertyViewer MHPR200.VBX
Viewer
Option (Group) DB_RadioGroup radp Pioneer radqRadioGroup QEVBDBF.VBX
Slider Slider sldm MicroHelp sldmSlider MHGR200.VBX
Button (Spin) Spinner spnm MicroHelp spnmSpinner MHEN200.VBX
Spreadsheet Spreadsheet sprm MicroHelp sprmSpreadsheet MHAD200.VBX
Picture Stretcher strm MicroHelp strmStretcher MHAD200.VBX
Screen Saver Screen Saver svrm MicroHelp svrmSaver MHTI200.VBX
Switcher Switcher swtm MicroHelp swtmSwitcher ???
List Box Tag tagm MicroHelp tagmListBox MHEN200.VBX
Timer Timer tmrm MicroHelp tmrmTimer MHTI200.VBX
ToolBar ToolBar tolm MicroHelp tolmToolBar MHAD200.VBX
List Box Tree trem MicroHelp tremTree MHEN200.VBX
Input Box Input (Text) txtm MicroHelp inpmText MHEN200.VBX
Input Box DB_Text txtp Pioneer txtpText QEVBDBF.VBX
Scroll Bar Vertical vsbm MicroHelp vsbmScroll MHEN200.VBX
Scroll Bar
Scroll Bar DB_VScroll vsbp Pioneer vsbpScroll QEVBDBF.VBX
A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: 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: 110264
(http://support.microsoft.com/kb/110264/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções deste artigo
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email



Voltar para o início