Minicursos - C#

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 identifica-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.


Você sabia?

Ao completar o nível 99 do jogo Duck Hunt, para Nintendo, o jogo retorna ao primeiro nível, mas um bug impede que se acerte os patos neste recomeço. Este é um exemplo do que é chamado no mundo dos games de "Kill Screen".


Você gostará destes vídeos: