Artigo: 110264 - Última revisão: quinta-feira, 9 de Janeiro de 2003 - Revisão: 1.1 INFO: Microsoft Consulting Services convenções de atribuição de nomes para o Visual Basic
Nesta páginaSumárioÉ uma boa ideia para estabelecer as convenções de nomenclatura para o código do Visual Basic. Este artigo fornece as convenções de nomenclatura utilizadas pelos serviços Microsoft consulta (MCS). Este documento é um vasto conjunto de convenções de codificação do Visual Basic encontrado no Visual Basic "Programmer Guide". NOTA: Os controlos de outros fabricantes mencionados neste artigo são fabricados por fornecedores independentes da Microsoft. A Microsoft não oferece nenhuma garantia, expressa ou implícita, relativamente ao desempenho ou à fiabilidade destes controlos. Mais InformaçãoConvenções de nomenclatura ajudam os programadores de Visual Basic:
Definir opções de ambienteUtilize a opção explícita. Declarar todas as variáveis para poupar tempo de programação, reduzindo o número de erros causados por erros de escrita (por exemplo, aUserNameTmp vs. sUserNameTmp vs. sUserNameTemp). Na caixa de diálogo Opções de ambiente, defina a declaração de variável necessária para Sim. A instrução Option Explicit requer que declare as variáveis no programa do Visual Basic. Guarde ficheiros como texto ASCII. Guarde formulário (.FRM) e módulo (.BAS) ficheiros como texto ASCII para facilitar a utilização de sistemas de controlo de versão e minimizar os danos que podem ser provocados por danos no disco. Além disso, pode:
Convenções de nomenclatura de objectos para objectos padrãoAs seguintes tabelas definem os prefixos de nome de objecto padrão MCS. Estes prefixos são consistentes com os documentadas no manual 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 Convenção de nomenclatura de objectos para objectos de base 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 nomenclatura de menuAs aplicações utilizam frequentemente uma prosperidade de controlos de menu. Como resultado, necessita de um conjunto de convenções de nomenclatura diferente para estes controlos. Prefixos de controlo de menu devem ser expandidos para além do rótulo mnu inicial, adicionando um prefixo adicional para cada nível de aninhamento, com o título de menu final no fim da cadeia 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 controlosPara novos controlos não listados acima, tente trazem um prefixo de três caracteres exclusivo. No entanto, é mais importante ser desmarque de ao colar a três caracteres.Para expandem derivados controlos, tais como uma caixa de lista avançada, os prefixos acima para que haja sem confusão sobre qual o controlo que está realmente a ser utilizado. Uma minúscula abreviatura para o fabricante também normalmente deve ser adicionada ao prefixo. Por exemplo, uma instância do controlo criada a partir do técnico de Visual Basic moldura 3D foi utiliza um prefixo fra3d para evitar confusões através da qual controlo realmente está a ser utilizado. Um botão de comando de MicroHelp poderia utilizar cmdm para diferenciá-lo no botão de comando padrão (cmd). Controlos de outros fabricantesCada controlo de outros fabricantes utilizado numa aplicação deverá estar listado na secção de comentário de descrição geral da aplicação, fornecendo o prefixo utilizado para o controlo, o nome completo do controlo e o nome do fornecedor de software:Prefix Control Type Vendor cmdm Command Button MicroHelp Variável e atribuição de nomes de rotinaOs nomes 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 seguintes tabelas definem variável e função prefixos de nome que se baseiam notação Húngaro C para o Windows. Estes prefixos devem ser utilizados com todas as variáveis e os nomes das funções. Utilização de sufixos base antigas (tal como % &, #, etc.) são a sua utilização. 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
Âmbito e utilização de prefixos: 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 destes nomes variáveis indicam um programador algo muito diferentes. Estas informações são perdidas quando o nome da variável é reduzido para enviar %. Prefixos de âmbito como, por exemplo, g e m também ajudam a reduzir o problema de contenção de nome especialmente em projectos multi-developer. bSend - sinalizador boleano A definir o êxito da última operação de envio hSend - A processar à interface de comunicação Notação Húngaro é também muito utilizada pelos programadores de C do Windows e constantemente indicada na documentação dos produtos da Microsoft e livros de programação da indústria. Além disso, o título entre programadores de C e os programadores que utilizam o Visual Basic passa muito mais forte como a expectativa de ganhos Visual C++ sistema de desenvolvimento. Esta transição resultará em muitos programadores de Visual Basic mover e C para a primeira vez e muitos programadores frequentemente mover alternadamente entre ambos os ambientes. O corpo de variável e nomes de rotinaO corpo de uma variável ou rotina nome deve utilizar maiúsculas e minúsculas e deve ser desde conforme necessário para descrever a respectiva finalidade. Além disso, os nomes das funções deverão começar com um verbo, como, por exemplo, InitNameArray ou CloseDialog.Para termos frequentemente utilizados ou longos, abreviaturas padrão são recomendadas para ajudar a manter os comprimentos de nome razoável. Em geral, nomes de variáveis superior a 32 caracteres podem ser difícil de ler no apresenta VGA. Quando utilizar abreviaturas, certifique-se de estão consistentes em toda a aplicação completa. Aleatoriamente alternar entre NOT e contar dentro de um projecto irá conduzir a confusão desnecessário. Qualificadores de variável e nomes de rotinaVariáveis relacionadas e rotinas frequentemente são utilizadas para gerir e manipular um objecto comuns. Nestes casos, utilize os qualificadores padrão para identificar as variáveis derivadas e rotinas. Apesar de a colocar o qualificador depois do corpo do nome poderá parecer um pouco estranhas (como na sGetNameFirst, sGetNameLast em vez de sGetFirstName, sGetLastName), este procedimento ajudará a ordem lista estes nomes em conjunto na rotina do Visual Basic editor, tornando o lógica e a estrutura da aplicação mais fácil de compreender. A tabela seguinte define qualificadores comuns e respectivo significado 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 utilizadorDeclare tipos definidos pelo utilizador em maiúsculas com _TYPE anexado ao fim do nome do símbolo. Por exemplo:Atribuição de nomes de constantesO corpo da constantes nomes deve estar UPPER_CASE com caracteres de sublinhado (_) entre palavras. Apesar de constantes do Visual Basic padrão não incluem informações húngaro, prefixos como i, s, g e m pode ser muito úteis no Noções sobre o valor e o âmbito de uma constante. Para nomes de constantes, siga as mesmas regras como variáveis. Por exemplo:Tipo de dados varianteSe souber que uma variável sempre irá armazenar dados de um determinado tipo, Visual Basic pode processar os dados mais eficiente se declarar uma variável desse tipo.No entanto, o tipo de dados variante pode ser extremamente útil quando trabalha com bases de dados, mensagens, DDE ou OLE. Muitas bases de dados permitem NULL como um valor válido para um campo. O código tem de distinguir entre NULL, 0 (zero) e "" (cadeia em branco). Muitas vezes, estes tipos de operações podem utilizar uma rotina de serviço genérico não necessita de conhecer o tipo de dados que recebe para processar ou a passar nos dados. Por exemplo: Comentar o códigoTodos os procedimentos e funções devem começar com um breve comentário que descreva as características funcionais a rotina (o que acontece). Esta descrição não deverá descrever os detalhes de implementação (como acontece-) porque estas frequentemente mudar ao longo do tempo, resultando em trabalho de manutenção de comentário desnecessários ou pior ainda, comentários errados. O código propriamente dito e quaisquer comentários na linha ou locais necessários vão descrever a implementação.Parâmetros passados para uma rotina devem ser descritos quando as respectivas funções não são óbvias e quando a rotina espera os parâmetros para ser um intervalo específico. Função devolver valores e variáveis globais que são alteradas pela rotina (especialmente através de parâmetros de referência) também devem ser descritas no início de cada entrada na rotina. Comentário do cabeçalho rotina blocos deverão ter o aspecto que esta (consulte a secção seguinte "Formatação o código" 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, controlos e rotinas devem ser designadas suficientemente claramente que na linha comentar só é necessário para detalhes de implementação complexo ou não intuitiva. Uma descrição de descrição geral da aplicação, enumerar objectos de dados primário, rotinas, algoritmos, de diálogos, dependências de sistema de base de dados e o ficheiro etc. devem ser incluídos no início do módulo .BAS que contém declarações de constantes genéricas do projecto do Visual Basic. NOTA: A janela Project inerentemente descreve a lista de ficheiros num projecto, para que esta secção de descrição geral só necessita de fornecem informações sobre os ficheiros mais importantes e módulos ou os ficheiros que a janela Project não lista, tais como inicialização (.ini) ou ficheiros de base de dados. O código de formataçãoUma vez que muitos programadores utilizam ainda apresenta VGA, ecrã imobiliário tem ser conserved quanto possível, permitindo ainda código de formatação para reflectir a estrutura lógica e aninhamento.Bloco padrão, com base em separador, aninhamento avanços deve ser duas a quatro espaços. Mais de quatro espaços não é necessário e pode causar instruções para ser oculta ou acidentalmente truncado. Menos dois espaços não mostra suficientemente aninhamento lógica. Na Microsoft Knowledge Base, utilizamos um avanço de espaço de três. Utilize a caixa de diálogo Opções do ambiente de para definir a largura predefinida do separador. O comentário de descrição geral da funcionalidade de uma rotina deve ser indentadas um espaço. As instruções do nível mais elevadas que siga o comentário de descrição geral devem ser com um separador, com cada bloco aninhado indentados um separador adicional. Por exemplo: OperadoresSempre utilize um "e" comercial (&) quando concatenar cadeias e utilize o sinal de adição (+) ao trabalhar com valores numéricos. Utilizar um sinal de adição (+) com valores não numéricos, pode causar problemas quando a funcionar com duas variantes. Por exemplo:ÂmbitoVariáveis sempre deverão ser definidas com o âmbito mais pequeno possível. As variáveis globais podem criar máquinas de estado enormously complexas e tornar extremamente difícil de entender a lógica de uma aplicação. As variáveis globais também dificultar a reutilização e manutenção do código muito mais. Variáveis no Visual Basic podem ter o âmbito seguinte:
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 tem de utilizar as variáveis globais, é recomendável declarar todas elas num módulo único e agrupá-las pela função. Atribua o módulo de um nome significativo que indica objectivo, como, por exemplo, GLOBAL.BAS. Com a excepção das variáveis globais (que não devem ser passadas), procedimentos e funções só devem operar em objectos que são transmitidos para as mesmas. As variáveis globais que são utilizadas em rotinas devem ser identificadas na área de comentário geral no início a rotina. Além disso, passe argumentos para subs e funções utilizando ByVal, a menos que explicitamente pretenda alterar o valor do argumento transmitido. Escreva código modular sempre que possível. Por exemplo, se a aplicação apresenta uma caixa de diálogo, coloque todos os controlos e códigos necessários para efectuar tarefa a caixa de diálogo num único formulário. Isto ajuda a manter o código da aplicação organizado componentes útil e minimiza a sobrecarga de tempo de execução. Controlos de outros fabricantesNOTA: Os produtos referidos abaixo são fabricados por fornecedores independentes da Microsoft. A Microsoft não oferece nenhuma garantia, expressa ou implícita, relativa ao desempenho ou fiabilidade destes produtos.A tabela seguinte lista caracteres de prefixo nome de parte de outros fornecedores padrão para ser utilizado com prefixos de controlo: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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 de Artigos
|






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



Voltar ao topo