版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
文件編號(hào):UF/QP/2-09/QI/002編寫(xiě):翟萬(wàn)達(dá)、周明川 審核:SEPG日期:01/10/25版號(hào):1.0draft頁(yè)號(hào):9/1010PAGEPAGE12024對(duì)象命名約定應(yīng)該用一致的前綴來(lái)命名對(duì)象,使人們?nèi)菀鬃R(shí)別對(duì)象的類型。下面列出了VisualBasic支持的一些推薦使用的對(duì)象約定。推薦使用的控件前綴控件類型前綴例子3DPanelpnlpnlGroupADODataadoadoBiblioAnimatedbuttonanianiMailBoxCheckboxchkchkReadOnlyCombobox,drop-downlistboxcbocboEnglishCommandbuttoncmdcmdExitCommondialogdlgdlgFileOpenCommunicationscomcomFaxControl(當(dāng)特定類型未知時(shí),在過(guò)程中所使用的)ctrctrCurrentDatadatdatBiblioData-boundcomboboxdbcbodbcboLanguageData-boundgriddbgrddbgrdQueryResultData-boundlistboxdblstdblstJobTypeDatacombodbcdbcAuthorDatagriddgddgdTitlesDatalistdbldblPublisherDatarepeaterdrpdrpLocationDatepickerdtpdtpPublishedDirectorylistboxdirdirSourceDrivelistboxdrvdrvTargetFilelistboxfilfilSourceFlatscrollbarfsbfsbMoveFormfrmfrmEntryFramefrafraLanguageGaugegaugauStatusGraphgragraRevenueGridgrdgrdPricesHierarchicalflexgridflexflexOrdersHorizontalscrollbarhsbhsbVolumeImageimgimgIconImagecomboimgcboimgcboProductImageListilsilsAllIconsLabellbllblHelpMessageLightweightcheckboxlwchklwchkArchiveLightweightcomboboxlwcbolwcboGermanLightweightcommandbuttonlwcmdlwcmdRemoveLightweightframelwfralwfraSaveOptionsLightweighthorizontalscrollbarlwhsblwhsbVolumeLightweightlistboxlwlstlwlstCostCentersLightweightoptionbuttonlwoptlwoptIncomeLevelLightweighttextboxlwtxtlwoptStreetLightweightverticalscrollbarlwvsblwvsbYearLinelinlinVerticalListboxlstlstPolicyCodesListViewlvwlvwHeadingsMAPImessagempmmpmSentMessageMAPIsessionmpsmpsSessionMCImcimciVideoMenumnumnuFileOpenMonthviewmvwmvwPeriodMSChartchchSalesbyRegionMSFlexgridmsgmsgClientsMSTabmstmstFirstOLEcontaineroleoleWorksheetOptionbuttonoptoptGenderPictureboxpicpicVGAPictureclipclpclpToolbarProgressBarprgprgLoadFileRemoteDatardrdTitlesRichTextBoxrtfrtfReportShapeshpshpCircleSlidersldsldScaleSpinspnspnPagesStatusBarstastaDateTimeSysInfosyssysMonitorTabStriptabtabOptionsTextboxtxttxtLastNameTimertmrtmrAlarmToolbartlbtlbActionsTreeViewtretreOrganizationUpDownupdupdDirectionVerticalscrollbarvsbvsbRate推薦使用的數(shù)據(jù)訪問(wèn)對(duì)象(DAO)的前綴用下列前綴來(lái)指示數(shù)據(jù)訪問(wèn)對(duì)象。數(shù)據(jù)庫(kù)對(duì)象前綴例子ContainerconconReportsDatabasedbdbAccountsDBEnginedbedbeJetDocumentdocdocSalesReportFieldfldfldAddressGroupgrpgrpFinanceIndexixidxAgeParameterprmprmJobCodeQueryDefqryqrySalesByRegionRecordsetrecrecForecastRelationrelrelEmployeeDeptTableDeftbdtbdCustomersUserusrusrNewWorkspacewspwspMine一些例子:DimdbBiblioAsDatabaseDimrecPubsInNYAsRecordset,strSQLStmtAsStringConstDB_READONLY=4'設(shè)置常量。'打開(kāi)數(shù)據(jù)庫(kù)。SetdbBiblio=OpenDatabase("BIBLIO.MDB")'為SQL語(yǔ)句設(shè)置文本。strSQLStmt="SELECT*FROMPublishersWHERE_State='NY'"'創(chuàng)建新的記錄集對(duì)象。SetrecPubsInNY=db.OpenRecordset(strSQLStmt,_dbReadOnly)推薦使用的菜單前綴應(yīng)用程序頻繁使用許多菜單控件,對(duì)于這些控件具備一組唯一的命名約定很實(shí)用。除了最前面"mnu"標(biāo)記以外,菜單控件的前綴應(yīng)該被擴(kuò)展:對(duì)每一級(jí)嵌套增加一個(gè)附加前綴,將最終的菜單的標(biāo)題放在名稱字符串的最后。下表列出了一些例子。菜單標(biāo)題序列菜單處理器名稱FileOpenmnuFileOpenFileSendEmailmnuFileSendEmailFileSendFaxmnuFileSendFaxFormatCharactermnuFormatCharacterHelpContentsmnuHelpContents當(dāng)使用這種命名約定時(shí),一個(gè)特定的菜單組的所有成員一個(gè)接一個(gè)地列在VisualBasic的“屬性”窗口中。而且,菜單控件的名字清楚地表示出它們所屬的菜單項(xiàng)。為其它控件選擇前綴對(duì)于上面沒(méi)有列出的控件,應(yīng)該用唯一的由兩個(gè)或三個(gè)字符組成的前綴使它們標(biāo)準(zhǔn)化,以保持一致性。只有當(dāng)需要澄清時(shí),才使用多于三個(gè)字符的前綴。例如,對(duì)于派生的或修改的控件象上述那樣擴(kuò)展其前綴,使得在真正使用了哪一個(gè)控件的問(wèn)題上避免混淆。對(duì)于第三方控件,應(yīng)該把制造商的小寫(xiě)縮寫(xiě)名附加到前綴中。例如,從VisualBasicProfessional3D框架中創(chuàng)建的一個(gè)控件實(shí)例可以用fra3d這樣的前綴,以避免混淆所使用的控件。常量和變量命名約定除了對(duì)象之外,常量和變量也需要良好格式的命名約定。本節(jié)列出了VisualBasic支持的常量和變量的推薦約定。并且討論標(biāo)識(shí)數(shù)據(jù)類型和范圍的問(wèn)題。變量應(yīng)該總是被定義在盡可能小的范圍內(nèi)。全局(Public)變量可以導(dǎo)致極其復(fù)雜的狀態(tài)機(jī)構(gòu),并且使一個(gè)應(yīng)用程序的邏輯非常難于理解。全局變量也使代碼的重用和維護(hù)更加困難。VisualBasic中的變量可以有下列范圍:范圍聲明位置可見(jiàn)位置過(guò)程級(jí)過(guò)程,子過(guò)程或函數(shù)過(guò)程中的‘Private’在聲明它的過(guò)程中模塊級(jí)窗體或代碼模塊(.frm、.bas)的聲明部分中的‘Private’窗體或代碼模塊中的每一個(gè)過(guò)程全局代碼模塊(.bas)的聲明部分中的‘Public’應(yīng)用程序中的每一處在VisualBasic的應(yīng)用程序中,只有當(dāng)沒(méi)有其它方便途徑在窗體之間共享數(shù)據(jù)時(shí)才使用全局變量。當(dāng)必須使用全局變量時(shí),在一個(gè)單一模塊中聲明它們,并按功能分組。給這個(gè)模塊取一個(gè)有意義的名稱,以指明它的作用,如Public.bas。較好的編碼習(xí)慣是盡可能寫(xiě)模塊化的代碼。例如,如果應(yīng)用程序顯示一個(gè)對(duì)話框,就把要完成這一對(duì)話任務(wù)所需要的所有控件和代碼放在單一的窗體中。這有助于將應(yīng)用程序的代碼組織在有用的組件中,并減小它運(yùn)行時(shí)的開(kāi)銷。除了全局變量(應(yīng)該是不被傳遞的),過(guò)程和函數(shù)應(yīng)該僅對(duì)傳遞給它們的對(duì)象操作。在過(guò)程中使用的全局變量應(yīng)該在過(guò)程起始處的聲明部分中標(biāo)識(shí)出來(lái)。此外,應(yīng)該用ByVal將參數(shù)傳遞給Sub過(guò)程及function過(guò)程,除非明顯地需要改變已傳遞的參數(shù)值。變量范圍前綴隨著工程大小的增長(zhǎng),劃分變量范圍的工作也迅速增加。在類型前綴的前面放置單字母范圍前綴標(biāo)明了這種增長(zhǎng),但變量名的長(zhǎng)度并沒(méi)有增加很多。范圍前綴例子全局ggstrUserName模塊級(jí)mmblnCalcInProgress本地到過(guò)程無(wú)dblVelocity如果一個(gè)變量在標(biāo)準(zhǔn)模塊或窗體模塊中被聲明為Public,那么該變量具有全局范圍。如果一個(gè)變量在標(biāo)準(zhǔn)模塊或窗體模塊中被分別聲明為Private,那么該變量有模塊級(jí)范圍。注意一致性是卓有成效地使用這種技術(shù)的關(guān)鍵;VisualBasic中的語(yǔ)法檢查器不會(huì)捕捉以"p."開(kāi)頭的模塊級(jí)變量。常量常量名的主體是大小寫(xiě)混合的,每個(gè)單詞的首字母大寫(xiě)。盡管標(biāo)準(zhǔn)VisualBasic常量不包含數(shù)據(jù)類型和范圍信息,但是象i、s、g和m這樣的前綴對(duì)于理解一個(gè)常量的值和范圍還是很有用的。對(duì)于常量名,應(yīng)遵循與變量相同的規(guī)則。例如:mintUserListMax'對(duì)用戶列表的最大限制'(整數(shù)值,本地到模塊)gstrNewLine'新行字符'(字符串,應(yīng)用程序全局使用)變量聲明所有的變量將會(huì)節(jié)省編程時(shí)間,因?yàn)殒I入操作引起的錯(cuò)誤減少了(例如,究竟是aUserNameTmp,還是sUserNameTmp,還是sUserNameTemp)。在“選項(xiàng)”對(duì)話框的“編輯器”標(biāo)簽中,復(fù)選“要求變量聲明”選項(xiàng)。OptionExplicit語(yǔ)句要求在VisualBasic程序中聲明所有的變量。應(yīng)該給變量加前綴來(lái)指明它們的數(shù)據(jù)類型。而且前綴可以被擴(kuò)展,用來(lái)指明變量范圍,特別是對(duì)大型程序。變量數(shù)據(jù)類型用下列前綴來(lái)指明一個(gè)變量的數(shù)據(jù)類型。數(shù)據(jù)類型前綴例子BooleanblnblnFoundeanBbytbytRasterDatanByteCollectionocolcolWidgetsectionocurcurRevenueonobjectCudtmdtmStartectCurdbldblToleranceCurreerrerrOrderNumrencyDaintintQuantityyDatlnglngDistanceObjectobjobjCurrentectSinsngsngAverageSinglestrstrFNamegleStringUser-defudtudtEmployeeUser-devntvntCheckSum描述變量和過(guò)程名變量或過(guò)程名的主體應(yīng)該使用大小寫(xiě)混合形式,并且應(yīng)該足夠長(zhǎng)以描述它的作用。而且,函數(shù)名應(yīng)該以一個(gè)動(dòng)詞起首,如InitNameArray或CloseDialog。對(duì)于頻繁使用的或長(zhǎng)的項(xiàng),推薦使用標(biāo)準(zhǔn)縮略語(yǔ)以使名稱的長(zhǎng)度合理化。一般來(lái)說(shuō),超過(guò)32個(gè)字符的變量名在VGA顯示器上讀起來(lái)就困難了。當(dāng)使用縮略語(yǔ)時(shí),要確保它們?cè)谡麄€(gè)應(yīng)用程序中的一致性。在一個(gè)工程中,如果一會(huì)兒使用Cnt,一會(huì)兒使用Count,將導(dǎo)致不必要的混淆。用戶定義的類型在一項(xiàng)有許多用戶定義類型的大工程中,常常有必要給每種類型一個(gè)它自己的三個(gè)字符的前綴。如果這些前綴是以"u"開(kāi)始的,那么當(dāng)用一個(gè)用戶定義類型來(lái)工作時(shí),快速識(shí)別這些類型是很容易的。例如,ucli可以被用來(lái)作為一個(gè)用戶定義的客戶類型變量的前綴。結(jié)構(gòu)化編碼約定除了命名約定外,結(jié)構(gòu)化編碼約定,可以極大地改善代碼的可讀性,如代碼注釋和一致性縮進(jìn)。代碼注釋約定所有的過(guò)程和函數(shù)都應(yīng)該以描述這段過(guò)程的功能的一段簡(jiǎn)明注釋開(kāi)始(這段例程干什么)。這種描述不應(yīng)該包括執(zhí)行過(guò)程細(xì)節(jié)(它是怎么做的),因?yàn)檫@常常是隨時(shí)間而變的,而且這種描述會(huì)導(dǎo)致不必要的注釋維護(hù)工作,甚至更糟—成為錯(cuò)誤的注釋。代碼本身和必要的嵌入注釋將描述實(shí)現(xiàn)方法。當(dāng)參數(shù)的功能不明顯且當(dāng)過(guò)程希望參數(shù)在一個(gè)特定的范圍內(nèi)時(shí),也應(yīng)描述傳遞給過(guò)程的參數(shù)。被過(guò)程改變的函數(shù)返回值和全局變量,特別是通過(guò)引用參數(shù)的那些,也必須在每個(gè)過(guò)程的起始處描述它們。過(guò)程頭注釋塊應(yīng)該包括下列節(jié)標(biāo)題。關(guān)于例子,請(qǐng)參閱下節(jié)“格式化代碼”。節(jié)標(biāo)題注釋描述目的該過(guò)程完成什么(而不是怎么完成)。假設(shè)列出每個(gè)外部變量、控件、打開(kāi)文件或其它不明顯元素。效果列出每個(gè)被影響的外部變量、控件、或文件及其作用(只有當(dāng)它不明顯時(shí))。輸入每一個(gè)可能不明顯的參數(shù)。參數(shù)分別在單獨(dú)的行上,并嵌入注釋。返回函數(shù)返回值的說(shuō)明。記住下列幾點(diǎn):每一個(gè)重要變量的聲明應(yīng)該包括一個(gè)嵌入注釋,來(lái)描述該變量的使用。變量、控件及過(guò)程的命名應(yīng)該足夠清楚,使得只有復(fù)雜的執(zhí)行細(xì)節(jié)才需要嵌入注釋。.Bas模塊包含工程的VisualBasic一般常量聲明,在其起始處,應(yīng)該包括描述應(yīng)用程序的綜述,列舉主要數(shù)據(jù)對(duì)象、過(guò)程、算法、對(duì)話、數(shù)據(jù)庫(kù)及系統(tǒng)需求。有時(shí),一段描述算法的偽碼可能會(huì)有所幫助。格式化代碼因?yàn)樵S多程序員仍然使用VGA顯示器,所以在允許代碼格式來(lái)反映邏輯結(jié)構(gòu)和嵌套的同時(shí),應(yīng)盡可能地省屏幕空間。下面列出幾點(diǎn):標(biāo)準(zhǔn)的、基于制表位的嵌套塊應(yīng)該被縮進(jìn)四個(gè)空格(缺省情況下)。過(guò)程的功能綜述注釋?xiě)?yīng)該縮進(jìn)一個(gè)空格。跟在綜述注釋后面的最高級(jí)的語(yǔ)句應(yīng)該縮進(jìn)一個(gè)制表位,而每一個(gè)嵌套的塊再縮進(jìn)一個(gè)制表位。例如:'*****************************************************'目的:在用戶列表數(shù)組中找出'一個(gè)指定用戶的第一次出現(xiàn)位置。'輸入:'strUserList():被搜索的用戶列表。'strTargetUser:要搜索的用戶名。'返回:在rasUserList數(shù)組中rsTargetUser'的第一次出現(xiàn)的索引。'如果目標(biāo)用戶沒(méi)找到,返回-1。'*****************************************************FunctionintFindUser(strUserList()AsString,strTargetUserAs_String)AsIntegerDimiAsInteger'循環(huán)計(jì)數(shù)器。DimblnFoundAsInteger'目標(biāo)尋找標(biāo)志。intFindUser=-1i=0Whilei<=Ubound(strUserList)andNotblnFoundIfstrUserList(i)=strTargetUserThenblnFound=TrueintFindUser=iEndIfWendEndFunction
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- NB/T 11540-2024煤和巖石耐磨性測(cè)定方法
- 2025屆寧夏吳忠市高三上學(xué)期適應(yīng)性考試(一模)歷史試題(解析版)
- 《社區(qū)自治》課件
- 單位管理制度集合大全職員管理篇
- 單位管理制度匯編大全【人力資源管理】
- 單位管理制度合并選集人事管理
- 單位管理制度分享合集【人事管理】十篇
- 單位管理制度范例匯編【人力資源管理篇】十篇
- 單位管理制度呈現(xiàn)大全【人力資源管理篇】十篇
- 七年級(jí)英語(yǔ)Whatwouldyouliketohave課件
- 2025年婦產(chǎn)科工作計(jì)劃
- 《寒假安全教育班會(huì)》課件模板四套
- (T8聯(lián)考)2025屆高三部分重點(diǎn)中學(xué)12月第一次聯(lián)考 生物試卷(含答案詳解)
- 2024年世界職業(yè)院校技能大賽高職組“關(guān)務(wù)實(shí)務(wù)組”賽項(xiàng)參考試題庫(kù)(含答案)
- 報(bào)關(guān)稅費(fèi)代繳服務(wù)合同
- 耐火材料行業(yè)競(jìng)爭(zhēng)格局分析(如市場(chǎng)份額、競(jìng)爭(zhēng)優(yōu)劣勢(shì)等)
- 僅銷售預(yù)包裝食品經(jīng)營(yíng)者備案信息采集表
- 信息化工程建設(shè)項(xiàng)目可行性研究報(bào)告編制要求
- 床旁教學(xué)方法
- 2024湖南株洲攸縣城關(guān)國(guó)家糧食儲(chǔ)備庫(kù)員工招聘2人歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 塵埃粒子95%置信上限UCL計(jì)算公式
評(píng)論
0/150
提交評(píng)論