如何查找匈牙利表示法前缀列表?

时间:2010-03-06 09:58:01

标签: coding-style

我知道编写代码有很多标准。和一些政策工具(如FxCop)来检查你的写作陈述。

什么是最好的匈牙利表示法或任何其他编写代码的片段?

像:

  • lbl开始命名标签

  • txt开始命名TextBox

等。


更新:基于答案,使用Hungerian表示法是否是一个好主意?

另外,我将其标记为社区维基

4 个答案:

答案 0 :(得分:9)

Hungarian notation”一直是编程界许多热心辩论的主题。乔尔·斯波尔斯基(Joel Spolsky)有一个well-noted article捍卫智能使用的匈牙利符号,我觉得值得一读。

至于匈牙利表示法中使用的前缀列表:我不认为这些前缀的一般列表存在,因为它们将不同于编程语言和编程语言。维基百科的文章列出了一些;否则,我认为您必须参考您所在地区使用匈牙利表示法的平台/框架的编码标准手册。

答案 1 :(得分:4)

关于你的lbl和txt示例:这不是古典Charles Petzold意义上的匈牙利符号,只是前缀/命名约定。

Microsoft有一个list of these。摘录:

    Prefix    Object Type                           Example
    -------------------------------------------------------
    ani       Animation button                      aniMailBox
    cbo       Combo box and drop down list box      cboEnglish
    chk       Checkbox                              chkReadOnly
    clp       Picture clip                          clpToolbar
    cmd (3d)  Command button (3D)                   cmdOk (cmd3dOk)
    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
    gau       Gauge                                 gauStatus
    gpb       Group push button                     gpbChannel
    gra       Graph                                 graRevenue
    grd       Grid                                  grdPrices
    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
    mnu       Menu                                  mnuFileOpen
    opt (3d)  Option Button (3d)                    optRed (opt3dRed)
    pic       Picture                               picVGA
    pnl3d     3d Panel                              pnl3d
    shp       Shape controls                        shpCircle
    spn       Spin control                          spnPages
    txt       Text Box                              txtLastName
    tmr       Timer                                 tmrAlarm
    vsb       Vertical scroll bar                   vsbRate

答案 2 :(得分:2)

Framework Design Guidelines下的Microsoft General Naming Conventions说:

  

单词选择

     

选择易于识别的标识符名称。例如,a   名为Horizo​​ntalAlignment的属性是   英文比英文更具可读性   AlignmentHorizo​​ntal。

     

赞成可读性而不是简洁。该   属性名称CanScrollHorizo​​ntally是   比ScrollableX更好(一个不起眼的   参考X轴)。

     

请勿使用下划线,连字符或   任何其他非字母数字字符。

     

请勿使用匈牙利表示法。

     

匈牙利表示法是一种做法   包括标识符中的前缀   编码一些有关的元数据   参数,例如数据类型   标识符。

答案 3 :(得分:0)

在 Windows API 的较低抽象层,Charles Petzold 的(了不起的)书 “Programming Windows” 对匈牙利符号前缀有这样的说法:

Prefix          Data Type
-----------------------------------------------------------------
c               char
by              BYTE (unsigned char)
n               short
i               int
x, y            int (used as x-coordinate or y-coordinate)
cx, cy          int (used as x or y length; c stands for "count")
b or f          BOOL (int); f stands for "flag"
w               WORD (unsigned short)
l               LONG (long)
dw              DWORD (unsigned long)
fn              function
s               string
sz              string terminated by 0 byte
h               handle
p               pointer