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

Nas*_*loo 3 coding-style

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

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

喜欢:

  • lbl开始命名一个Label

  • 在命名TextBox开始时的txt


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

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

Pek*_*ica 9

" 匈牙利符号 "一直是编程界许多热心辩论的主题.乔尔·斯波尔斯基(Joel Spolsky)有一篇着名的文章,捍卫我认为值得一读的巧妙使用的匈牙利符号.

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

  • @Yacoby这不仅仅是简单的类型安全.考虑一个包含像素宽度的变量; 包含计数器的变量; 和一个包含相对宽度百分比的变量.这三个都是完全有效的整数 - 但你不能将它们相互组合.一个巧妙应用的匈牙利符号,其前缀如`px`,`count`和`rel`(或其他)使得错误的耦合立即可见 - 特别是当还应用于函数时("getWidth()"返回相对值或像素值? ")这 - 而不是类型的愚蠢前缀 - 是真正的利益IMO. (4认同)

Pet*_*sen 5

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

微软列出了这些。摘抄:

    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
Run Code Online (Sandbox Code Playgroud)

  • 这是我唯一一次使用任何形式的前缀-任何继承自Control或Form的对象。 (2认同)