亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Visual Basic > 正文

VB編程的七個優良習慣

2024-09-07 17:32:50
字體:
來源:轉載
供稿:網友
1、"&"替換"+"2、變量命名大小寫,語句錯落有秩,源代碼維護方面
3、請養成以下的“對象命名約定”良好習慣4、在簡單的選擇條件情況下,使用IIf()函數
5、盡量使用Debug.Print進行調試6、在重復對某一對象的屬性進行修改時,盡量使用With....End With
7、MsgBox中盡量使用消息圖標,這樣程序比較有規范8、在可能的情況下使用枚舉

1、"&"替換"+"
在很多人的編程語言中,用“+”來連接字符串,這樣容易導致歧義。良好的習慣是用“&”來連接字符串.

不正確:
Dim sMessage As String
sMessage = "1" + "2"

正確:
Dim sMessage As String
sMessage = "1" & "2"

注意:"&"的后面有個空格

2、變量命名大小寫,語句錯落有秩,源代碼維護方面

下面大家比較一下以下兩段代碼:

讀懂難度很大的代碼:

Dim SNAME As String
Dim NTURN As Integer

If NTURN = 0 Then
If SNAME = "vbeden" Then
Do While NTURN < 4
NTURN = NTURN + 1
Loop
End If
End If

容易讀懂的代碼:

Dim sName As String
Dim nTurn As Integer

If nTurn = 0 Then
   If sName = "vbeden" Then
      Do While nTurn < 4
          nTurn = nTurn + 1
      Loop
   End If
End If

[返回索引]

3、請養成以下的“對象命名約定”良好習慣

推薦使用的控件前綴

控件類型前綴例子
3D Panel pnlpnlGroup
ADO DataadoadoBiblio
Animated buttonanianiMailBox
Check boxchkchkReadOnly
Combo box, drop-down list boxcbocboEnglish
Command buttoncmdcmdExit
Common dialog dlgdlgFileOpen
Communications comcomFax
Control (當特定類型未知時,在過程中所使用的)ctrctrCurrent
DatadatdatBiblio
Data-bound combo boxdbcbodbcboLanguage
Data-bound griddbgrddbgrdQueryResult
Data-bound list boxdblstdblstJobType
Data combodbcdbcAuthor
Data griddgddgdTitles
Data listdbldblPublisher
Data repeaterdrpdrpLocation
Date pickerdtpdtpPublished
Directory list boxdirdirSource
Drive list boxdrvdrvTarget
File list boxfilfilSource
Flat scroll barfsbfsbMove
FormfrmfrmEntry
FramefrafraLanguage
GaugegaugauStatus
GraphgragraRevenue
GridgrdgrdPrices
Hierarchical flexgridflexflexOrders
Horizontal scroll barhsbhsbVolume
ImageimgimgIcon
Image comboimgcboimgcboProduct
ImageListilsilsAllIcons
LabellbllblHelpMessage
Lightweight check boxlwchklwchkArchive
Lightweight combo boxlwcbolwcboGerman
Lightweight command buttonlwcmdlwcmdRemove
Lightweight framelwfralwfraSaveOptions
Lightweight horizontal scroll barlwhsblwhsbVolume
Lightweight list boxlwlstlwlstCostCenters
Lightweight option buttonlwoptlwoptIncomeLevel
Lightweight text boxlwtxtlwoptStreet
Lightweight vertical scroll barlwvsblwvsbYear
LinelinlinVertical
List boxlstlstPolicyCodes
ListViewlvwlvwHeadings
MAPI messagempmmpmSentMessage
MAPI sessionmpsmpsSession
MCImcimciVideo
MenumnumnuFileOpen
Month viewmvwmvwPeriod
MS ChartchchSalesbyRegion
MS Flex gridmsgmsgClients
MS Tab mstmstFirst
OLE containeroleoleWorksheet
Option buttonoptoptGender
Picture boxpicpicVGA
Picture clipclpclpToolbar
ProgressBarprgprgLoadFile
Remote DatardrdTitles
RichTextBoxrtfrtfReport
ShapeshpshpCircle
SlidersldsldScale
SpinspnspnPages
StatusBarstastaDateTime
SysInfosyssysMonitor
TabStriptabtabOptions
Text boxtxttxtLastName
TimertmrtmrAlarm
ToolbartlbtlbActions
TreeViewtretreOrganization
UpDownupdupdDirection
Vertical scroll barvsbvsbRate

推薦使用的數據訪問對象 (DAO) 的前綴
用下列前綴來指示數據訪問對象
數據庫對象前綴例子
ContainerconconReports
DatabasedbdbAccounts
DBEnginedbedbeJet
DocumentdocdocSalesReport
FieldfldfldAddress
GroupgrpgrpFinance
IndexixidxAge
ParameterprmprmJobCode
QueryDef qryqrySalesByRegion
RecordsetrecrecForecast
RelationrelrelEmployeeDept
TableDeftbdtbdCustomers
UserusrusrNew
WorkspacewspwspMine

應用程序頻繁使用許多菜單控件,對于這些控件具備一組唯一的命名約定很實用。除了最前面 "mnu" 標記以外,菜單控件的前綴應該被擴展:對每一級嵌套增加一個附加前綴,將最終的菜單的標題放在名稱字符串的最后。下表列出了一些例子。

推薦使用的菜單前綴
菜單標題序列菜單處理器名稱
File OpenmnuFileOpen
File Send EmailmnuFileSendEmail
File Send Fax mnuFileSendFax
Format CharactermnuFormatCharacter
Help ContentsmnuHelpContents

當使用這種命名約定時,一個特定的菜單組的所有成員一個接一個地列在 Visual Basic 的“屬性”窗口中。而且,菜單控件的名字清楚地表示出它們所屬的菜單項。

為其它控件選擇前綴

對于上面沒有列出的控件,應該用唯一的由兩個或三個字符組成的前綴使它們標準化,以保持一致性。只有當需要澄清時,才使用多于三個字符的前綴。

常量和變量命名約定

除了對象之外,常量和變量也需要良好格式的命名約定。本節列出了 Visual Basic 支持的常量和變量的推薦約定。并且討論標識數據類型和范圍的問題。

變量應該總是被定義在盡可能小的范圍內。全局 (Public) 變量可以導致極其復雜的狀態機構,并且使一個應用程序的邏輯非常難于理解。全局變量也使代碼的重用和維護更加困難。

Visual Basic 中的變量可以有下列范圍

范圍聲明位置可見位置
過程級過程,子過程或函數過程中的 ‘Private’在聲明它的過程中
模塊級窗體或代碼模塊(.frm、.bas )的聲明部分中的 ‘Private’窗體或代碼模塊中的每一個過程
全局代碼模塊(.bas)的聲明部分中的 ‘Public’應用程序中的每一處

在 Visual Basic 的應用程序中,只有當沒有其它方便途徑在窗體之間共享數據時才使用全局變量。當必須使用全局變量時,在一個單一模塊中聲明它們,并按功能分組。給這個模塊取一個有意義的名稱,以指明它的作用,如 Public.bas。

較好的編碼習慣是盡可能寫模塊化的代碼。例如,如果應用程序顯示一個對話框,就把要完成這一對話任務所需要的所有控件和代碼放在單一的窗體中。這有助于將應用程序的代碼組織在有用的組件中,并減小它運行時的開銷。

除了全局變量(應該是不被傳遞的),過程和函數應該僅對傳遞給它們的對象操作。在過程中使用的全局變量應該在過程起始處的聲明部分中標識出來。此外,應該用 ByVal 將參數傳遞給 Sub 過程及 function 過程,除非明顯地需要改變已傳遞的參數值。

隨著工程大小的增長,劃分變量范圍的工作也迅速增加。在類型前綴的前面放置單字母范圍前綴標明了這種增長,但變量名的長度并沒有增加很多。

變量范圍前綴

范圍前綴例子
全局ggstrUserName
模塊級mmblnCalcInProgress
本地到過程dblVelocity

如果一個變量在標準模塊或窗體模塊中被聲明為 Public,那么該變量具有全局范圍。如果一個變量在標準模塊或窗體模塊中被分別聲明為 Private,那么該變量有模塊級范圍。

注意一致性是卓有成效地使用這種技術的關鍵;Visual Basic 中的語法檢查器不會捕捉以 "p." 開頭的模塊級變量。

常量
常量名的主體是大小寫混合的,每個單詞的首字母大寫。盡管標準 Visual Basic 常量不包含數據類型和范圍信息,但是象 i、s、g 和 m 這樣的前綴對于理解一個常量的值和范圍還是很有用的。對于常量名,應遵循與變量相同的規則。例如:

mintUserListMax   '對用戶列表的最大限制                  '(整數值,本地到模塊)gstrNewLine       '新行字符                  '(字符串,應用程序全局使用)

變量
聲明所有的變量將會節省編程時間,因為鍵入操作引起的錯誤減少了(例如,究竟是 aUserNameTmp,還是 sUserNameTmp,還是 sUserNameTemp)。在“選項”對話框的“編輯器”標簽中,復選“要求變量聲明”選項。Option Explicit 語句要求在 Visual Basic 程序中聲明所有的變量。

應該給變量加前綴來指明它們的數據類型。而且前綴可以被擴展,用來指明變量范圍,特別是對大型程序。

用下列前綴來指明一個變量的數據類型。

變量數據類型

數據類型前綴例子
String (字符串類型)strstrFName
Integer (短整數類型)intintQuantity
Long (長整數類型)lnglngDistance
Single (單精度浮點數類型)sngsngAverage
Double (雙精度浮點數類型)dbldblTolerance
Boolean (布爾類型)blnblnFound
Byte (字節類型)bytbytRasterData
Date (日期類型)dtedteNow
Currency (貨幣計算與定點計算類型)curcurRevenue
Object (對象類型)objobjCurrent
Variant (變體類型)vntvntCheckSum

描述變量和過程名

變量或過程名的主體應該使用大小寫混合形式,并且應該足夠長以描述它的作用。而且,函數名應該以一個動詞起首,如 InitNameArray 或 CloseDialog。

對于頻繁使用的或長的項,推薦使用標準縮略語以使名稱的長度合理化。一般來說,超過 32 個字符的變量名在 VGA 顯示器上讀起來就困難了。

當使用縮略語時,要確保它們在整個應用程序中的一致性。在一個工程中,如果一會兒使用 Cnt, 一會兒使用 Count,將導致不必要的混淆。

用戶定義的類型
在一項有許多用戶定義類型的大工程中,常常有必要給每種類型一個它自己的三個字符的前綴。如果這些前綴是以 "u" 開始的,那么當用一個用戶定義類型來工作時,快速識別這些類型是很容易的。例如,ucli 可以被用來作為一個用戶定義的客戶類型變量的前綴。

[返回索引]

4、在簡單的選擇條件情況下,使用IIf()函數

羅索的代碼:
If nNum = 0 Then
  sName = "sancy"
Else
  sName = "Xu"
End If

簡單的代碼:
sName=IIf(nNum=0,"sancy","Xu")

5、盡量使用Debug.Print進行調試

在很多初學者的調試中,用MsgBox來跟蹤變量值.其實用Debug.Print不僅可以達到同樣的功效,而且在程序最后編譯過程中,會被忽略.而MsgBox必須手動注釋或刪除.

通常:
MsgBox nName

應該:
Debug.Print nName

6、在重復對某一對象的屬性進行修改時,盡量使用With....End With

通常:
Form1.Height = 5000
Form1.Width = 6000
Form1.Caption = "This is MyLabel"

應該:
With Form1
  .Height = 5000
  .Width = 6000
  .Caption = "This is MyLabel"
End With
這種結構程序執行效率比較高,特別在循環語句里。

7、MsgBox中盡量使用消息圖標,這樣程序比較有規范

一般來說

vbInformation 用來提示確認或成功操作的消息

vbExclamation 用來提示警告的消息

vbCritical 用來提示危機情況的消息

vbQuestion 用來提示詢問的消息

[返回索引]

8、在可能的情況下使用枚舉

枚舉的格式為
[Public | Private] Enum name
membernam
e
[= constantexpression]
membername
[= constantexpression]
....
End Enum

Enum 語句包含下面部分:

部分描述
Public可選的。表示該 Enum 類型在整個工程中都是可見的。Enum 類型的缺省情況是 Public
Private可選的。表示該 Enum 類型只在所聲明的模塊中是可見的。
name必需的。該 Enum 類型的名稱。name 必須是一個合法的 Visual Basic 標識符,在定義該 Enum 類型的變量或參數時用該名稱來指定類型。
membername必需的。用于指定該 Enum 類型的組成元素名稱的合法 Visual Basic 標識符。
constantexpression可選的。元素的值(為 Long 類型)??梢允莿e的 Enum 類型。如果沒有指定 constantexpression,則所賦給的值或者是 0(如果該元素是第一個 membername),或者比其直接前驅的值大 1。

說明
所謂枚舉變量,就是指用 Enum 類型定義的變量。變量和參數都可以定義為 Enum 類型。Enum 類型中的元素被初始化為 Enum 語句中指定的常數值。所賦給的值可以包括正數和負數,且在運行時不能改變。例如:

Enum SecurityLevel IllegalEntry = -1 SecurityLevel1 = 0 SecurityLevel2 = 1 End Enum

Enum 語句只能在模塊級別中出現。定義 Enum 類型后,就可以用它來定義變量,參數或返回該類型的過程。不能用模塊名來限定 Enum 類型。類模塊中的 Public Enum 類型并不是該類的成員;只不過它們也被寫入到類型庫中。在標準模塊中定義的 Enum 類型則不寫到類型庫中。具有相同名字的 Public Enum 類型不能既在標準模塊中定義,又在類模塊中定義,因為它們共享相同的命名空間。若不同的類型庫中有兩個 Enum 類型的名字相同,但成員不同,則對這種類型的變量的引用,將取決于哪一個類型庫具有更高的引用優先級。

不能在 With 塊中使用 Enum 類型作為目標。

Enum 語句示例
下面的示例演示用 Enum 語句定義一個命名常數的集合。在本例中是一些可以選擇的顏色常數用于設計數據庫的數據輸入窗體。

Public Enum InterfaceColors
icMistyRose = &HE1E4FF&
icSlateGray = &H908070&
icDodgerBlue = &HFF901E&
icDeepSkyBlue = &HFFBF00&
icSpringGreen = &H7FFF00&
icForestGreen = &H228B22&
icGoldenrod = &H20A5DA&
icFirebrick = &H2222B2&
End Enum

好處是加快編程速度

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美噜噜久久久xxx| 亚洲精品一二区| 精品高清美女精品国产区| 国内外成人免费激情在线视频| 日韩在线视频免费观看| 国产视频一区在线| 日韩高清a**址| 国产亚洲欧美视频| 日韩在线视频线视频免费网站| 国产99视频精品免视看7| 国产视频亚洲精品| 亚洲中国色老太| 国模精品视频一区二区| 另类图片亚洲另类| 在线视频一区二区| 亚洲国产97在线精品一区| 这里只有精品视频| 欧美日韩一区二区在线| 黑丝美女久久久| 欧美劲爆第一页| 亚洲精品日韩丝袜精品| 亚洲精品www久久久| 97碰碰碰免费色视频| 另类图片亚洲另类| 亚洲福利在线播放| 中文字幕久热精品视频在线| 欧美性极品少妇精品网站| 亚洲美女在线看| 欧美专区日韩视频| 国模视频一区二区三区| 日韩精品中文在线观看| 日韩精品高清在线观看| 欧美一级大片在线观看| 在线免费看av不卡| 色在人av网站天堂精品| 亚洲欧美日韩久久久久久| 久久久久久久激情视频| 日本精品视频在线观看| 欧美性高潮床叫视频| 亚洲女人被黑人巨大进入| 国产日韩欧美自拍| 97久久精品人人澡人人爽缅北| 欧美日韩在线一区| 最近2019年中文视频免费在线观看| 亚洲图片欧美日产| 成人精品视频久久久久| 少妇久久久久久| 国产一区二区三区在线免费观看| 日韩极品精品视频免费观看| 午夜精品一区二区三区在线视频| 国产精品久久久久久久久久尿| 亚洲福利在线看| 亚洲女同精品视频| 欧美亚洲另类在线| 午夜精品久久久久久久男人的天堂| 97av视频在线| 亚洲乱码国产乱码精品精天堂| 日韩理论片久久| 一区二区中文字幕| 97国产在线视频| 欧美黄色片免费观看| 久久免费视频在线| 亚洲图片制服诱惑| 欧美在线免费看| 国产一区二区三区在线免费观看| 国产一区二区三区三区在线观看| 精品国产欧美一区二区三区成人| 日本a级片电影一区二区| 国产69久久精品成人看| 国产精品情侣自拍| 精品香蕉在线观看视频一| 日韩欧美国产黄色| 欧美日韩国产一区在线| 国产精品久久电影观看| 日韩在线视频中文字幕| 91精品国产高清久久久久久91| 国产日韩在线一区| 国产国产精品人在线视| 亚洲欧美国产另类| 精品国产乱码久久久久久虫虫漫画| 日韩a**中文字幕| 日韩精品视频免费专区在线播放| 精品亚洲一区二区三区在线播放| 亚洲无亚洲人成网站77777| 51色欧美片视频在线观看| 亚洲电影第1页| 亚洲第一区第二区| 国产精品无码专区在线观看| 欧美电影院免费观看| 亚洲欧洲日产国码av系列天堂| 91香蕉嫩草影院入口| 欧美成人精品h版在线观看| 亚洲第一福利网站| 91理论片午午论夜理片久久| 亚洲激情在线观看视频免费| 粗暴蹂躏中文一区二区三区| 福利视频一区二区| 在线日韩精品视频| 91av在线不卡| 日韩av观看网址| 7777kkkk成人观看| 在线观看成人黄色| 久久久久国产一区二区三区| 国产999视频| 国产精品白嫩初高中害羞小美女| 久久亚洲综合国产精品99麻豆精品福利| 美女黄色丝袜一区| 亚洲一区二区少妇| 少妇高潮久久久久久潘金莲| 日韩中文字幕视频在线观看| 国产精品99久久久久久www| 亚洲国模精品一区| 欧美国产视频一区二区| 色婷婷av一区二区三区在线观看| 日产日韩在线亚洲欧美| 久久激情视频久久| 蜜月aⅴ免费一区二区三区| 国产一区视频在线| 高跟丝袜一区二区三区| 日韩精品欧美激情| 色久欧美在线视频观看| 一本色道久久88亚洲综合88| 日韩成人黄色av| 欧美日韩国产丝袜另类| 国产精品青草久久久久福利99| 久久免费视频在线观看| 久久久国产一区二区三区| 国产精品热视频| 一本一本久久a久久精品综合小说| 成人黄色免费在线观看| 国产精品高清免费在线观看| 国产成人啪精品视频免费网| 夜夜嗨av一区二区三区四区| 日韩国产一区三区| 久久久久国产精品一区| 国产视频精品va久久久久久| 日韩av手机在线| 欧美日韩亚洲激情| 国产精品69av| 亚洲在线一区二区| 91美女片黄在线观看游戏| 国产精品久久久亚洲| zzijzzij亚洲日本成熟少妇| 色诱女教师一区二区三区| 伊人久久精品视频| 亚洲人成免费电影| 狠狠色噜噜狠狠狠狠97| 日本不卡免费高清视频| 亚洲欧洲在线看| 欧日韩不卡在线视频| 国产精品视频26uuu| 欧美三级xxx| 欧美国产日韩一区二区| 青青草国产精品一区二区| 国产午夜精品理论片a级探花| 欧美黑人国产人伦爽爽爽| 日韩午夜在线视频| 日韩av一区二区在线| 欧美亚洲在线视频| www.欧美精品一二三区| 国产欧美一区二区三区在线| 国产亚洲人成a一在线v站| 亚洲精品一区二区三区婷婷月| 在线观看91久久久久久|