Notação Húngara
Antes de prosseguirmos com os tópicos de C# e Visual C#, é preciso uma interrupção para falar sobre Notação Húngara, que nada mais é do que uma forma inteligente de se nomear variáveis e componentes. Isso é necessário, pois mesmo com o próximo projeto de exemplo sendo pequeno, ele terá vários campos e componentes e, sem uma melhor identificação ficará complicado trabalhar com eles.
A Notação Húngara foi criada por Charles Simonyi, um antigo programador da Microsoft. Basicamente o que essa técnica faz é permitir que identifiquemos o tipo de variável ou do componente utilizado apenas parte do seu nome. Mais precisamente o que acontece é que reservamos alguns caracteres do início do nome da variável ou do componente para identificá-lo.
Imagine que você abra um código e se depare com uma variável chamada “processo”. De que tipo ela é? Impossível deduzir, certo? Mas e se o nome dela fosse intProcesso? Intuitivamente já pensamos em uma variável do tipo inteiro. Se fosse strProcesso já a associaríamos a uma variável do tipo string. Bem, isso é a Notação Húngara! Utilizando-a com o Visual C# e seus componentes, vale a mesma regra. Se olhando um código você encontra um componente chamado selecaoUsuario, não é possível saber do que se trata sem analisar outras partes do código. Mas, se o nome do componente for chkSelecaoUsuario já lembraremos de um CheckBox. Ou se for cboSelecaoUsuario o associaremos a um ComboBox e assim por diante.
Até aqui não utilizei isso com receio de dispersar a atenção dos iniciantes em C# e Visual C#, mas agora que os conceitos básicos já estão explicados, nomearei todos os componentes dessa forma. Aconselho que façam o mesmo. Após pouco tempo trabalhando dessa forma tudo ficará automático.
Abaixo seguem as sugestões para utilização de Notação Húngara com os componentes do Visual C#:
Windows Forms
Componente |
Prefixo |
Button |
btn |
CheckBox |
chk |
CheckedListBox |
clb |
ColorDialog |
cld |
ComboBox |
cbo |
ContextMenu |
cmn |
CrystalReportViewer |
rpt |
DataGrid |
grd |
DateTimePicker |
dtp |
DomainUpDown |
upd |
ErrorProvider |
err |
FontDialog |
ftd |
Form |
frm |
GroupBox |
grp |
HelpProvider |
hlp |
HScrollBar |
hsb |
ImageList |
ils |
Label |
lbl |
LinkLabel |
lnk |
ListBox |
lst |
ListView |
lvw |
MonthCalendar |
mcl |
NotifyIcon |
nti |
NumericUpDown |
nud |
OpenFileDialog |
ofd |
PageSetupDialog |
psd |
Panel |
pnl |
PictureBox |
pic |
PrintDialog |
ptd |
PrintPreviewControl |
ppc |
PrintPreviewDialog |
ppd |
ProgressBar |
prg |
RadioButton |
rad |
RichTextBox |
rtf |
SaveFileDialog |
sfd |
Splitter |
spt |
StatusBar |
sta |
TabControl |
tbc |
Timer |
tmr |
ToolBar |
tlb |
ToolTip |
tip |
TrackBar |
trb |
TreeView |
tre |
VScrollBar |
vsb |
Dados
Componente |
Prefixo |
DataSet |
dts |
OleDbDataAdapter |
oda |
OleDbConnection |
ocn |
OleDbCommand |
ocm |
SqlDataAdapter |
sda |
SqlConnection |
scn |
SqlCommand |
scm |
DataView |
dtv |
Curiosidade!
Quando Charles Simonyi começou a adotar esse padrão (ainda sem nome), outros programadores estranharam tanto que disseram que parecia húngaro. A partir daí surgiu o nome de Notação Húngara.