VB、VC编码规范 | |||||||
文件编号 | |||||||
发布日期 | 共11页 | ||||||
1. VB 2. VC 版本号:第3版 受控印章:受控 | |||||||
新发布 | 修改状态 | 修该页码 | 修改者 | 修改时间 | 生效日期 | ||
/ | 0 | / | / | / | 2004.06.30 | ||
1 VB部分
1.1 控件前缀
控件类型 | 前缀 | 例子 |
3D Panel | pnl | PnlGroup |
Animated button | ani | AniMailBox |
Check box | chk | ChkReadOnly |
Combo box, drop-down list box | cbo | CboEnglish |
Command button | cmd | CmdExit |
Common dialog | dlg | DlgFileOpen |
Communications | com | ComFax |
Control | ctr | CtrCurrent |
Data control | dat | DatBiblio |
Data-bound combo box | dbcbo | DbcboLanguage |
Data-bound grid | dbgrd | DbgrdQueryResult |
Data-bound list box | dblst | DblstJobType |
Directory list box | dir | DirSource |
Drive list box | drv | DrvTarget |
File list box | fil | FilSource |
Form | frm | FrmEntry |
Form Object Variable | frmO | FrmOEntry |
Frame | fra | FraLanguage |
Gauge | gau | GauStatus |
Graph | gra | GraRevenue |
Grid | grd | GrdPrices |
Horizontal scroll bar | hsb | HsbVolume |
Image | img | ImgIcon |
Key status | key | KeyCaps |
Label | lbl | LblHelpMessage |
Line | lin | LinVertical |
List box | lst | LstPolicyCodes |
MAPI message | mpm | mpmSentMessage |
MAPI session | mps | mpsSession |
MCI | mci | mciVideo |
MDI child form | mdi | mdiNote |
Menu | mnu | mnuFileOpen |
MS Flex grid | msg | msgClients |
MS Tab | mst | mstFirst |
OLE | ole | oleWorksheet |
Outline | out | outOrgChart |
Pen Bedit | bed | bedFirstName |
Pen HEdit | hed | hedSignature |
Pen ink | ink | inkMap |
Picture | pic | picVGA |
Picture clip | clp | clpToolbar |
Report | rpt | rptQtr1Earnings |
Shape | shp qt listview | shpCircle |
Spin | spn | spnPages |
Text box | txt | txtLastName |
Timer | tmr | tmrAlarm |
UpDown | upd | updDirection |
Vertical scroll bar | vsb | vsbRate |
Slider | sld | sldScale |
ImageList | ils | ilsAllIcons |
TreeView | tre | treOrganization |
Toolbar | tlb | tlbActions |
TabStrip | tab | tabOptions |
StatusBar | sta | staDateTime |
ListView | lvw | lvwHeadings |
ProgressBar | prg | prgLoadFile |
RichTextBox | rtf | rtfReport |
1.2 数据访问对象 (DAO) 前缀
数据库对象 | 前缀 | 例子 |
Container | con | conReports |
Database | db | dbAccounts |
DBEngine | dbe | dbeJet |
Document | doc | docSalesReport |
Field | fld | fldAddress |
Group | grp | grpFinance |
Index | idx | idxAge |
Parameter | prm | prmJobCode |
QueryDef | qry | qrySalesByRegion |
Recordset | rec | recForecast |
Relation | rel | relEmployeeDept |
TableDef | tbd | tbdCustomers |
User | usr | usrNew |
Workspace | wsp | wspMine |
1.3 菜单前缀
菜单控件除了最前面 "mnu" 标记以外,菜单控件的前缀应该被扩展:对每一级嵌套增加一个附加前缀,将最终的菜单的标题放在名称字符串的最后。下表列出了一些例子。
菜单标题序列 | 菜单处理器名称 |
File | mnuFile |
File Open | mnuFileOpen |
File Send | mnuFileSend |
File Send Email | mnuFileSendEmail |
File Send Fax | mnuFileSendFax |
当使用这种命名约定时,一个特定的菜单组的所有成员一个接一个地列在 Visual Basic 的“属性”窗口中。而且,菜单控件的名字清楚地表示出它们所属的菜单项。
1.4 其它控件前缀
对于上面没有列出的控件,应该用唯一的由两个或三个字符组成的前缀使它们标准化,以保持一致性。只有当需要澄清时,才使用多于三个字符的前缀。
例如,对于派生的或修改的控件象上述那样扩展其前缀,使得在真正使用了哪一个控件的问题上避免混淆。对于第三方控件,应该把制造商的小写缩写名附加到前缀中。例如,从 Visual Basic Professional 3D 框架中创建的一个控件实例可以用 fra3d 这样的前缀,以避免混淆所使用的控件。
1.5 变量、常量范围前缀
范围 | 前缀 | 例子 |
全局 | g | gstrUserName |
模块级 | m | mblnCalcInProgress |
本地到过程 | dblVelocity | |
1.6 变量、常量类型前缀
数据类型 | 前缀 | 例子 |
Boolean | bln | blnFound |
Byte | byt | bytRasterData |
Collection | col | colWidgets |
Currency | cur | curRevenue |
DateTime | dtm | dtmStart |
Double | dbl | dblTolerance |
Error | err | errOrderNum |
Integer | int | intQuantity |
Long | lng | lngDistance |
Object | obj | objCurrent |
Single | sng | sngAverage |
String | str | strFName |
User define type | udt | udtEmployee |
Variant | Vnt | vntCheckSum |
1.7 描述变量和过程名
变量或过程名的主体应该使用大小写混合形式,并且应该足够长以描述它的作用。而且,函数名应该以一个动词起首,如 InitNameArray 或 CloseDialog。
对于频繁使用的或长的项,推荐使用标准缩略语以使名称的长度合理化。一般来说,超过 32 个字符的变量名在 VGA 显示器上读起来就困难了。
当使用缩略语时,要确保它们在整个应用程序中的一致性。在一个工程中,如果一会儿使用 Cnt, 一会儿使用 Count,将导致不必要的混淆。
1.8 用户定义的类型
在一项有许多用户定义类型的大工程中,常常有必要给每种类型一个它自己的三个字符的前缀。如果这些前缀是以 "u" 开始的,那么当用一个用户定义类型来工作时,快速识别这些类型是很容易的。例如,ucli 可以被用来作为一个用户定义的客户类型变量的前缀。
1.9 代码注释约定
1.9.1代码注释规范
模块节标题注释如下:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'@Module Name: (模块名称)
'@Main Func: (模块说明)
'@Author: (作者)
'@Last Modify: (最后修改时间)
'@Include: (引用外部接口)
'@Interface: (模块提供接口)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
举例:frmAccountCard.frm 的程序头注释如下
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'@Module Name: frmAccountCard
'@Main Func: 科目卡片窗体
'@Author: 张山
'@Last Modify: 2000-06-24
'@Include:
'@Interface:
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
程序接口注释:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'@Function Name: (函数名)
'@Main Func: (函数说明)
'@Author: (作者)
'@Last Modify: (最后修改日期)
'@Param: (用参数)
'@Returns: (返回值类型)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
举例:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'@Function Name: AddAccount
'@Main Func: 直接增加会计科目
'@Author: 张山
'@Last Modify: 2000-06-23
'@Param: strAccount 科目字符串
'@Param: strPath 科目币种数据所在路径
'@Param: blnIsCopy 由科目复制来标志
'@Returns: Integer
''
1.10 窗体隐含全局变量
避免使用窗体隐含全局变量,声明自己的窗体变量(例如,Dim dlgAbout As New frmAboutBox)。
1.11 命名属性、方法和事件
尽量用完整的词,不用缩写。缩写可能有许多形式,并因此可能含混。如果完整的单词太
长的话,可以用完整的第一个音节。
对于标识符,可以用大小写混合的写法,每个单词或者音节的首字符大写,例如ShortcutMenus 或者 AsyncReadComplete。
对于集合类名,可以用复数写法。如果集合中有以 "s" 结尾的对象,可将单词"Collection"附加在其后面。
对于方法名,可以比较一致地用动词/对象或者对象/动词的顺序。也就是说,使用 InsertWidget、InsertSprocket,等等,或者总是将对象放在前面,就象例子 WidgetInsert 和 SprocketInsert 那样。
1.12 常数使用
在VB中已经定义了常数的情况下,必须采用常数,避免采用数值的使用对程序可读性产生不良影响。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论