zoukankan      html  css  js  c++  java
  • Delphi编程建议遵守的规范2---命名规范

    1.1.形参命名建议

            所有形参的名称都应当表达出它的用途。如果合适的话,形参的名称最好以字母a 为前缀,例如:

    procedure SomeProc(aUserName:string; aUserAge:integer);
    

         当参数名与类的特性或字段同名时,前缀a 就有必要了

    1.2.命名冲突

        当两个单元中含有相同名称的过程时,如果调用该过程,实际被调用的是Uses 子句中较后出现的那个单元中的过程。为避免这种情况,可在方法名前加想要的单元名

    SysUtils.FindClose(SR);
    或Windows.FindClose(Handle);
    

    1.3.局部变量依据数据类型不同,应该用不同的前缀标识,各类型前缀对应关系如下:

    变量类型

    前缀

    举例

    Integer变量

    小写i

    iCount

    Shortint变量

    小写si

    siCount

    Cardinal变量

    小写ci

    ciCount

    Longint变量

    小写l

    lEntrustNo

    Int64变量

    小写i64

    i64SerialNo

    Byte变量

    小写bt

    btFlag

    Word变量

    小写w

    wCount

    DWORD变量

    小写dw

    dwCount

    Boolean变量

    小写b

    bFound

    Char变量

    小写c

    cKind

    String变量

    小写s

    sName

    Float变量

    小写e

    eLastPrice

    Double变量

    小写e

    eCurrentBalance

    Handle变量

    小写h

    hDllHandle

    PChar变量

    小写sz

    szBuffer

    X坐标

    小写x

    xPos

    Y坐标

    小写y

    yPos

    1.4.全局变量一般以大写字母“G”打头,并遵循其他变量的命名规则。

    1.5.枚举类型

           枚举类型名代表美剧的用途,名称前面要加T字符作为前缀,表示这是个数据类型。枚举类型的标识符列表的前缀应包含2-3个小写字符,小鞋子富取法一般的类型名的每个单词道,例子

    TSongType=(stRock, stClassical, stCountry, stAlternative, stHeavyMetal, stRB);
    

        枚举类型的变量实例的名称与类型相同,但没有前缀T ,也可以给变量一个更加特殊名称,诸如:GoodSongType、BadSongType等等。

    1.6.数组类型

            数组类型名应表达出该数组的用途。类型名必须加字母“T”为前缀。如果要声明一个指向数组类型的指针,则必须加字母P 为前缀,且声明在类型声明之前。例

    type
      PCycleArray = ^TCycleArray;    //PCycleArray是TCycleArray类型的指针     
      TCycleArray=array[1..100] of integer;
    Var
      CycleArray: TCycleArray;    //实际上,数组类型的变量实例与类型名称相同,但没有“T”前缀
    

    1.7.记录类型

            记录类型名应表达出记录的用途。类型名必须加字母T为前缀。如果要声明一个指向记录类型的指计,则必须加字母P为前缀,且其声明在类型声明之前。例

    type
        PEmployee = ^TEmployee;
        TEmployee = record
            EmployeeName: string;
            EmployeeRate: Double;
        end;
    

    1.8.类类型

           类的名称应当表达出类的用途。一般的类名前要加字母“T”,如果是接口类那么类名前要加“I”,错误异常类的类名前要加“E”,而类引用类型(Class-reference type)则要在类名后加“Class”,抽象类一般是在类名前还要加“Custom”。

           类的实例名称通常与类名相同,只不过没有前缀“T”。

    1.9.类的成员变量

           类的成员变量的命名遵循与变量相同的规则,只不过要加前缀F ,表示这是类的成员。

    所有成员变量必须为私有。如果要在类的作用域之外访问字段,可借助于类的属性来实现。

    1.10.属性访问方法

           所有属性访问方法应当定义在类的私有或保护部分。属性访问方法遵循与过程和函数相同的规则。用于读的方法应当加“Get”前缀,用于写的方法应当加“Set”前缀,并且有一个叫Value的参数,其类型与属性的类型相同。例如:

    TSomeClass = class(TObject)
    private
        FSomeField: Integer;
    protected
        function GetSomeField: Integer;
        procedure SetSomeField(Value: Integer);
    public
        property SomeField: Integer read GetSomeField write SetSomeField;
    end;
    

    1.11. 属性

           属性作为成员变量的访问器,遵循与成员变量相同的命名规则,只不过没有F前缀。属性名应为名词,而不是动词。属性是数据,而方法是动作。数组属性名应当是复数,而一般的属性应当是单数。

    1.12.组件实例命名

           组件实例的名称应当能够描述其实际意义。使用前缀而不使用后缀的原因是在搜寻时,在对象检查器和代码探索器中搜寻构件的名字比搜寻构件的类型更容易。在这个标准中,组件实例名包括两个部分:前缀和性质标识名。

    1.13.组件的前缀

           组件的前缀多是表现组件类型的字母缩写。参见下面表中的组件前缀:

    组件类名

    组件前缀

    TActionList, TAction表示动作的列表项

    act

    TButton, TSpeedButton, TBitBtn等所有的按钮类

    btn

    TCheckBox, TDBCheckBox等所有的检查框

    chk

    TradioButton单选按钮类

    rdo

    TToolBar工具条

    tb

    TMainMenu所有的主菜单类

    mm

    TMainMenuItem所有的菜单项类

    mi

    TpopupMenu所有的弹出式菜单类

    pm

    TPopupMenuItem所有的弹出式菜单项类

    pmi

    TLabel, TStaticText等所有用来显示的标签类

    lbl

    TPanel等所有的面板类

    pnl

    TpageControl等所有的页式控件类

    pgc

    TEdit, TMaskEdit等所有的单行编辑框类

    edt

    TMemo, TRichEdit等所有的多行编辑框类

    mmo

    TDrawGrid, TStringGrid等所有的网格类

    grd

    TAnimate等所有的动画类

    ani

    TImageList等所有的图片列表类

    il

    TImage等图片类

    img

    TChart图表类

    cht

    TComboBox, TDBComboBox等所有的下拉式列表框类

    cbo

    TListBox, TDBList等所有的列表框类

    lst

    TtreeView

    tv

    TlistView

    lv

    ThotKey

    hk

    TSplitter等所有的分隔符类

    spt

    TopenDialog等所有的对话框组件类

    dlg

    TTable等所有的数据表类

    tbl

    TQuery等所有的SQL查询类组件

    qry

    TClientDataSet所有的客户数据集组件

    cds

    TdataSource

    ds

    Tdatabase

    db

    TSockConnection,TDCOMConnection等连接组件类

    con

    TQuickRep, TFastReport等所有的报表组件类

    rpt

    TDDEClientConv,TDDEClientItem等所有的DDE组件类

    dde

    TMonthCalendar等所有的日历类

    cal

    TGroupBox等控件类

    grp

    TForm等窗体类

    frm

       如上所示,组件类型前缀是从分析描述组件的类型性质而来的。通常情况下,下面的规则描述如何定义一个组件类型前缀:

    • 从组件类型名中移去T前缀。例如TButton变成Button 
    • 除了第一个元音,删去所有元音字母。例如,Button变成bttnEdit变成edt 
    • 压缩双字母。例如,bttn变成btn 
    • 如发生冲突,则在某一组件前缀中加入一个元音。例如在TBatton组件的前缀中加入元音变为batn,以区别TButton的前缀。 

           不过,上述规则首先得保证前缀名称必须符合习惯,做到见名知意,如:TDDEClientConv控件的前缀就是一个例外。 

           注意:组件的前缀是为了表示出组件的类型,是按钮,还是标签等等,因此没有必要为每一个特别组件类建立一个组件前缀,如: TMyButton的组件前缀仍为btn。

    1.14.窗体类型的命名标准

           窗体或对话框类型的名称应当表达出窗体的用途,如果是窗体要加“Tfrm”前缀,如果是对话框要加“Tdlg”,后跟描述性名

    1.15.窗体实例的命名标准

          窗体实例的名称与相应的类型名称相同,但没有前缀。使用前缀法命名窗体和对话框的好处在于可以在Object Inspector(属性观察器)中快速找到需要的组件类型

    1.16.数据模块的命名

       数据模块类型名称应表达出它的用途,且要加前缀“Tdm”,后跟描述性名称

    1.17.数据模块实例的命名

           数据模块实例的名称应当与相应的类型名称相同,但没有前缀

     

          当然这只是其中的一部分,还有很多规范需要制定和遵。另外这只是建议性的规范,并不是强制性的东西,可以根据自己的团队情况去指定符合自己的标准和规则

  • 相关阅读:
    最详细win7下手动搭建PHP环境:apache2.4.23+php7.0.11
    读书笔记:《HTML5开发手册》Web表单
    jQuery点击图片弹出大图遮罩层
    数据库之一
    Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
    PHP实现RTX发送消息提醒
    angularJS(3)
    angularJS(2)
    替换
    事务格式
  • 原文地址:https://www.cnblogs.com/xumenger/p/4335413.html
Copyright © 2011-2022 走看看