中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
VB編碼規(guī)范
必須打開設(shè)置選項的要求變量聲明,對齊控件到網(wǎng)格,自動縮進(jìn)開關(guān)。

Tab的寬度統(tǒng)一為4個空格,網(wǎng)格單位一律設(shè)為:width 50 height 50。

命名

     工程

       ActiveX控件和DLL工程命名格式為(….Lib),EXE工程直接命名,如果是通用組件工程,直接命名,如果是項目或產(chǎn)品工程,則使用項目或產(chǎn)品縮寫作為前綴。如:XWY….Lib。

       工程命名不必縮寫,為了表達(dá)意思和用途,可以盡可能地長,而且命名格式采用 (名詞) 、 (形容詞 + 名詞) (名詞 + 動作的名詞形式)。如:XWYStockOperationLibXWYStockLib。

 

       (注意:在任何時候,不要使用中文命名,包括文件夾,文件名,函數(shù)名,變量名。除非文件需要和用戶交互!)

 

     變量

       變量命名不推薦采用匈牙利命名法,除非命名會和關(guān)鍵字產(chǎn)生沖突的時候,才采用類型縮寫+變量實名的匈牙利命名法。一般情況下,變量命名應(yīng)該簡單,盡量使用縮寫。

       如果是一般的值類型,如integer string,則直接使用變量用途命名,盡量使用全名:

       Dim name              As String

       Dim count              As Interger

 

       對于一般的臨時性變量定義,應(yīng)該盡可能地簡單,如:

       Dim i                    As Integer

       For i = 0 to 100

       Next I

 

       如果是類對象或自定義類型對象,則在單一使用情況下使用類名稱或自定義類型名稱的簡寫來命名:

Dim em                 As EnityManager

 

如果非單一使用,則使用類型名稱縮寫為前綴,即使用匈牙利命名法:

Dim emRead          As EntityManager

Dim emSave          As EntityManager

 

(注意:所有前綴都全部小寫,后面的單詞首字母大寫)

 

 

       縮寫規(guī)則如下:

       如果名稱由多個單詞組成,則取每個單詞的首字母,如EntityManager縮寫為em,ProcedureManager縮寫為pm。

       如果名稱由一個單詞組成,則對單詞進(jìn)行分段取首字母,如Entity縮寫為et

       縮寫應(yīng)該控制在3個字母以內(nèi),盡量清晰,對于接口名稱,I……中的I前綴不對縮寫產(chǎn)生任何影響,如Ientity的名稱應(yīng)視作Entity。

       除非首字母為元音,否則應(yīng)該截取輔音做為縮寫,如TextBox控件的縮寫前綴為txt。

 

       范圍標(biāo)識:

              全局變量加前綴:’g_’

              模塊級變量加前綴:’m_’

              過程級變量不加前綴

       全局變量和模塊級變量應(yīng)該盡量使用全名稱,不推薦使用縮寫,如:g_EntityManager

     控件

       控件命名一律使用控件類型縮寫+控件用途的命名方式,類型縮寫應(yīng)控制在3個字母以內(nèi),縮寫規(guī)則同變量命名,以下是常用控件的類型縮寫,應(yīng)該嚴(yán)格遵守,如果使用了新的控件,則首先應(yīng)該在小組內(nèi)協(xié)同一致其類型名稱縮寫后再進(jìn)行使用。

cmb            Combo box
chk             Checkbox
cmd          Command button 
dlg              Common dialog control
dt               DTPicker         DropDateControl
enm            EnumEditBox
fra             Frame
frm            Form 
gra             Graph
grd             EditGrid MSHFlexGrid FlexGrid DataGrid
img             Image ImageList
lab              Label
ln                Line
lst               List box 
lv               ListView
mnu                    Menu control 
nm             NumEditBox
opt             Option button 
pic              Picture 
rpt              Report
sbr              Scroll bar
shp             Shape
spn             Spin
st               StatusBar
tb               ToolBar
tmr             Timer
txt             Textbox
tv               TreeView

     函數(shù)

       此處函數(shù)包括subfunction,以下這兩種過程統(tǒng)稱為函數(shù)。

       函數(shù)表示的是一個動作,所以它的結(jié)構(gòu)應(yīng)該是 動詞+名詞,動詞必須小寫,后面的名稱首字母大寫,如:

getMaterialCode
updateGrid
readOrder

       函數(shù)命名盡量不要使用縮寫,而且它的名稱應(yīng)該使人一目了然,能夠從名稱就知道這個函數(shù)的功能,不要使用無意義的函數(shù)名稱,如:getCode(當(dāng)這個函數(shù)屬于Materail類的時候,它還是有意義的),update,readData。

       當(dāng)函數(shù)名稱不足以表達(dá)其功能時,使用在函數(shù)頭部加上讓調(diào)用者足夠明白的注釋。

      

       參數(shù)的命名:參數(shù)命名的原則是全部小寫,如果參數(shù)包括兩個或以上的單詞時,首單詞字母小寫,其它單詞首字母大定,如showCol、isUpdate。

      

     常量

       常量的命名應(yīng)該全部大寫,使用’_’作為單詞間的分隔符,單詞盡量使用全名稱,如:

       Public Const MSG_EMPTY_ROW      As String = “有空行存在!

      

       解釋:

(1) 對一些常用詞應(yīng)該使用簡寫,如msg

(2) 使用Public而不是早期版本的global來聲明變量

(3) 對常量的聲明必須帶上類型,如上面的As String

 

     屬性

       屬性的命名采用首字母大寫的原則,如ItemCount Item

 

     類、窗體和模塊

       類的命名使用功能名詞,不必加任何前綴和后綴,并且單詞首字母大寫,如:SystemConfig

       窗體命名使用功能名詞 + Form后綴,如:ListForm。 但對于單據(jù)的明細(xì)窗體則統(tǒng)一使用Detail后綴替換Form

       模塊命名:不必加任何前綴和后綴,直接命名

     自定義控件

       自定義控件的命名:名詞 + Ctrl

 

如:EditGridCtrl

格式

     定義

       定義的代碼塊應(yīng)該放在一起,盡量不要在中間定義變量,變量的定義應(yīng)該頂行進(jìn)齊,不能縮進(jìn),同時要保證”As”關(guān)鍵字的對齊,如下:

Dim i             As Integer

Dim j             As Integer

Dim em          As EntityManager

 

 

       對象的定義應(yīng)該盡可能地帶上所屬的庫名稱,防止以后引起名稱沖突,如引用了兩個Lib,每個中都包含一個stock類,如果不使用As ….Lib.Stock的定義方式,則無法編譯通過,為了防止以后程序擴(kuò)充和修改時引入新的庫帶來命名沖突,推薦在定義類對象時全部加上庫標(biāo)識,對于本工程的類對象定義也要加上,如:

       Dim em          As ObjectPersistenceLib.EntityManager

      

     空行

       空行是區(qū)分代碼塊與塊的間隔,在函數(shù)之間必須加上空行(兩行左右),而函數(shù)內(nèi)部,變量聲明塊和實現(xiàn)塊(實現(xiàn)塊指除變量聲明外的其它代碼)要使用空行來間隔(一行),實現(xiàn)塊的內(nèi)部,通過空行來標(biāo)識一個功能段,如:

Private Sub Check(Order As NYSaleBackLib.Order)

‘* 減少庫存

Dim objStockItem          As NYStockLib.StockItem

Dim objStock                 As NYStockLib.Stock

Dim i                    As Integer

 

    Set objStock = CreateStock()

 

    For i = 0 To Order.ItemCount - 1

   

        Set objStockItem = Order.item(i)

 

        ‘* 減少庫存

        Call objStock.ReduceItem(objStockItem, True)

 

    Next i

       

    Set objStock = Nothing

   

End Sub

 

(注意:不要使用過多的空行,空行太多影響代碼閱讀!)

     縮進(jìn)

       縮進(jìn)必須嚴(yán)格執(zhí)行,變量聲明塊不縮進(jìn),實現(xiàn)塊必須保證全部縮進(jìn)(即不可能有實現(xiàn)塊是行首對齊的)。

       對于基本的控制結(jié)構(gòu),必須要有縮進(jìn),如:IFDO、WITH、FOR、OPEN、SELECT塊,縮進(jìn)示例如下:

       …..

 

       If ….. Then

              …..

       End If

       …..

 

       (注意:在任何地方,不要寫ElseIf語句,轉(zhuǎn)換成IF..ELSE..ENDIF結(jié)構(gòu))

      

       對于過長的語句,必須使用續(xù)行,續(xù)行位置要有明顯意義,示例:

       sql = “SELECT [code],[name] FROM [Person] “ _

              & “ WHERE [code] LIKE ‘001%’ “

 

       函數(shù)的參數(shù)如果過長,也應(yīng)該續(xù)行,示例:

‘**

增加庫存

‘@param        ProductCode 產(chǎn)品編號

‘@param        Spec 長度規(guī)格

‘@param        Color 顏色

‘@param        Patch 是否拼圈

‘@param        Volumn 盤號

‘@param        Ordinal 子庫存順序號

‘@param        Length 長度

‘@param        IsCheck 是否審核入庫增加(否則為棄審出庫增加)

Public Sub AddDetail(ProductCode As String, _

                Spec As Double, _

                Color As String, _

                Patch As Boolean, _

                Volumn As String, _

                Ordinal As Integer, _

                Length As Double, _

                IsCheck As Boolean)

注釋

    

       注釋以盡可能少為宜,但必須要做到別人能夠通過閱讀你的代碼明白你的意思,讓調(diào)用者明白函數(shù)功能的表達(dá)優(yōu)先級原則如下:

(1)       通過函數(shù)名稱表達(dá)

(2)       通過代碼來表達(dá)

(3)       通過注釋來表達(dá)

由上可知,注釋是在代碼無法充分表達(dá)函數(shù)功能時才提供,注釋同樣應(yīng)該做到準(zhǔn)確簡潔。

     格式

       注釋的格式遵循vbDocMan的寫法,一般情況下使用vbDocMan的注釋編輯器進(jìn)行注釋編寫,對于顯而易見的參數(shù)或函數(shù)功能可以不加注釋。參數(shù)注釋中參數(shù)類型可以不要。

 

示例:

‘**

讀取單據(jù)信息

‘@param        OrderID 單據(jù)號

‘@param        Order 單據(jù)

Private Function ReadOrder(OrderID As String, Order As NYSaleBackLib.Order) As Boolean

End Function

 

 

       在每個代碼模塊(窗體、類、模塊、控件)的最上面,必須寫上代碼編寫人(使用英文名或中文拼音縮寫)、代碼創(chuàng)建時間、代碼修改時間和修改說明。

示例:

‘**

庫存修改類

‘@writer                pureach

‘@createdate        2003-11-12

‘@revision             pureach       2003-11-15

增加對庫存修改時同時影響最后入庫日期的功能

 

什么是好的代碼

(1)       可讀性很強(qiáng)的代碼格式,能夠區(qū)分不同的代碼塊

(2)       清晰明了的命名,在盡可能短的名稱長度下傳遞足夠多的信息

(3)       和代碼相得益彰的注釋(不要讓注釋重復(fù)代碼所能表達(dá)的信息)

(4)       變量的生存期盡可能地短,這樣閱讀者不用去記大量的變量聲明

(5)       使用小函數(shù),將功能復(fù)雜的大函數(shù)進(jìn)行分隔

 

 

總之,代碼的好壞應(yīng)該讓別人是否能夠容易讀懂來區(qū)分,如果對自己的代碼不滿意,那么先給別人閱讀,然后讓閱讀者告訴你他為什么讀不懂,哪些地方讀著吃力。好的代碼應(yīng)該能夠讓你在幾個月后回顧自己的代碼時一目了然(架構(gòu)的清晰是代碼易讀的前提)。


qqq123 發(fā)表于:2005.03.13 21:36 ::分類: ( 初始分類 ) ::閱讀:(256次) :: 評論 (0)
===========================================================
VB
===========================================================
、變量和對象

    程序中的變量遵循匈牙利表示法,即“前綴+變量含義”,變量的含義為一個或多個英文單詞,每個單詞的第一個字母大寫,不要用漢語拼音代替。變量前綴為三個小寫字母示意其類型,所需添加的前綴遵循微軟在MSDN中的建議。列表如下:

 

    基本數(shù)據(jù)類型

變量類型

前綴

示例

Boolean

bln

blnFound

Byte

byt

bytRasterData

Collection object

col

colWidgets

Currency

cur

curRevenue

Date (Time)

dtm

dtmStart

Double

dbl

dblTolerance

Error

err

errOrderNum

Integer

int

intQuantity

Long

lng

lngDistance

Object

obj

objCurrent

Single

sng

sngAverage

String

str

strFName

User-defined type

udt

udtEmployee

Variant

vnt

vntCheckSum

   

    控件或窗體、模塊對象

控件類型

前綴

示例

3D Panel

pnl

pnlGroup

ADO Data

ado

adoBiblio

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

dat

datBiblio

Data-bound combo box

dbcbo

dbcboLanguage

Data-bound grid

dbgrd

dbgrdQueryResult

Data-bound list box

dblst

dblstJobType

Data combo

dbc

dbcAuthor

Data grid

dgd

dgdTitles

Data list

dbl

dblPublisher

Data repeater

drp

drpLocation

Date picker

dtp

dtpPublished

Directory list box

dir

dirSource

Drive list box

drv

drvTarget

File list box

fil

filSource

Flat scroll bar

fsb

fsbMove

Form

frm

frmEntry

Frame

fra

fraLanguage

Gauge

gau

gauStatus

Graph

gra

graRevenue

Grid

grd

grdPrices

Hierarchical flexgrid

flex

flexOrders

Horizontal scroll bar

hsb

hsbVolume

Image

img

imgIcon

Image combo

imgcbo

imgcboProduct

ImageList

ils

ilsAllIcons

Label

lbl

lblHelpMessage

Lightweight check box

lwchk

lwchkArchive

Lightweight combo box

lwcbo

lwcboGerman

Lightweight command button

lwcmd

lwcmdRemove

Lightweight frame

lwfra

lwfraSaveOptions

Lightweight horizontal scroll bar

lwhsb

lwhsbVolume

Lightweight list box

lwlst

lwlstCostCenters

Lightweight option button

lwopt

lwoptIncomeLevel

Lightweight text box

lwtxt

lwoptStreet

Lightweight vertical scroll bar

lwvsb

lwvsbYear

Line

lin

linVertical

List box

lst

lstPolicyCodes

ListView

lvw

lvwHeadings

MAPI message

mpm

mpmSentMessage

MAPI session

mps

mpsSession

MCI

mci

mciVideo

Menu

mnu

mnuFileOpen

Month view

mvw

mvwPeriod

MS Chart

ch

chSalesbyRegion

MS Flex grid

msg

msgClients

MS Tab

mst

mstFirst

OLE container

ole

oleWorksheet

Option button

opt

optGender

Picture box

pic

picVGA

Picture clip

clp

clpToolbar

ProgressBar

prg

prgLoadFile

Remote Data

rd

rdTitles

RichTextBox

rtf

rtfReport

Shape

shp

shpCircle

Slider

sld

sldScale

Spin

spn

spnPages

StatusBar

sta

staDateTime

SysInfo

sys

sysMonitor

TabStrip

tab

tabOptions

Text box

txt

txtLastName

Timer

tmr

tmrAlarm

Toolbar

tlb

tlbActions

TreeView

tre

treOrganization

UpDown

upd

updDirection

Vertical scroll bar

vsb

vsbRate

 

    數(shù)據(jù)庫對象

數(shù)據(jù)庫對象

前綴

示例

Container

con

conReports

Database

db

dbAccounts

DBEngine

dbe

dbeJet

Document

doc

docSalesReport

Field

fld

fldAddress

Group

grp

grpFinance

Index

ix

idxAge

Parameter

prm

prmJobCode

QueryDef

qry

qrySalesByRegion

Recordset

rec

recForecast

Relation

rel

relEmployeeDept

TableDef

tbd

tbdCustomers

User

usr

usrNew

Workspace

wsp

wspMine

 

    除此之外,還要對于一些不同的級別的變量加額外的前綴,舉例如下:

級別

前綴

示例

全局變量

g

gstrUserName

模塊級變量

m

mblnCalcInProgress

過程級變量

None

dblVelocity

 

    對于用戶使用type關(guān)鍵字定義的數(shù)據(jù)類型,在三個字母的前綴前再加u。例如:一個用戶定義的叫Client類型的變量,其前綴為ucli。

 

    關(guān)于變量使用方面,建議如下:

1、變量要先聲明再使用(在窗體代碼的第一行加上Option Explicit,來禁止未聲明變量的調(diào)用,或者在菜單Tools->Options->Editor中選中Require Variable Declaration項。)

2、盡量使用Long型的變量來代替Integer類型,這樣做可以減少一些數(shù)據(jù)溢出的錯誤,而且,在Win32平臺上,CPU處理32位的數(shù)據(jù)比16位的數(shù)據(jù)速度更快。

3、盡量少用Variant變量,盡可能地給出每一個變量明確的類型

4、盡量不在API聲明中使用As Any,如果遇到其默認(rèn)的參數(shù)為As Any的情況,則針對每一個所需的參數(shù)類型聲明該API函數(shù),例如ReadFile函數(shù)默認(rèn)的聲明為:

Public Declare Function ReadFile Lib "kernel32" Alias "ReadFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long

小組成員須將其改為:

Public Declare Function ReadFileByt Lib "kernel32" Alias "ReadFile" (ByVal hFile As Long, lpBuffer As Byte, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long

Public Declare Function ReadFileInt Lib "kernel32" Alias "ReadFile" (ByVal hFile As Long, lpBuffer As Integer, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long

Public Declare Function ReadFileLng Lib "kernel32" Alias "ReadFile" (ByVal hFile As Long, lpBuffer As Long, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long

 

5、不要將類型轉(zhuǎn)換的工作交給VB自動去做,而使用以下類型轉(zhuǎn)換函數(shù)

CBool(expression)

CByte(expression)

CCur(expression)

CDate(expression)

CDbl(expression)

CDec(expression)

CInt(expression)

CLng(expression)

CSng(expression)

CStr(expression)

CVar(expression)

 

二、窗體布局

    窗體內(nèi)各個控件的布局,建議如下:

    1、所有與窗體上、下、左、右四條邊界相鄰的控件與窗體的邊緣相距120緹

    2、各個控件之間的間距為:相關(guān)控件60緹,非相關(guān)控件120緹

    3、按鈕控件大小建議為高300緹,長1200緹,這也是操作系統(tǒng)默認(rèn)按鈕的大小

    4、各個控件的字體建議為宋體五號字

 

三、代碼

    1、程序的啟動對象

        程序一率從Main()函數(shù)開始執(zhí)行(選擇菜單View->Project Explorer,在工程窗口內(nèi)右鍵點擊當(dāng)前項目,選擇菜單“… Properties”->General,在Startup Object下拉框中選擇sub main)

2、代碼縮進(jìn)與間距

        每個單位的代碼縮進(jìn)為一個TAB,非相關(guān)代碼留一行空白的間隔,例如:

Private Function GetMax(Byref lngArray() As Long) As Long

 

    GetMax=0

 

    Dim lngMax As Long

    Dim lngCount as long

 

    For lngCount =0 to Ubound(lngArray)

        If lngArray (lngCount)>lngMax Then

            lngMax=lngArray(lngCount)

        End If

    Next

 

End Function

 

    3、注譯

        程序的注譯越詳盡,越仔細(xì)越好。以下提及的,必須加注譯。

        程序中聲明的每一個變量,能加上注譯最好,至少用來運(yùn)算或者保存關(guān)鍵數(shù)據(jù)的變量必須加上注譯。

        對于每一段邏輯上實現(xiàn)某個基本功能的幾句代碼,最好在其上一行加上簡單注譯。

        對于每一個自定義的函數(shù),不管大小都必須加上注譯,而且注譯的格式如下:

‘******************************************************

‘函數(shù)所實現(xiàn)的功能

‘函數(shù)的參數(shù)1的含義:XXXXX

‘函數(shù)的參數(shù)2的含義:XXXXX

‘……

‘函數(shù)返回值所代表的錯誤信息:XXXXX(函數(shù)盡可能聲明為Function,不要聲明為Sub,

‘函數(shù)的返回值為0表示執(zhí)行成功,為其它值表示執(zhí)行失?。?p>

‘******************************************************

 

Public(Private) Function ForExample(……………………) As Long

‘…………………………………………

End Function

 

    4、錯誤處理(未定)

        在Main()函數(shù)或主窗體Load過程中添加如下代碼:

‘******************************************************

‘打開錯誤日志文件,在Form_Unload()中關(guān)閉

‘******************************************************

 

    Dim strExePath As String

    If Right(App.Path, 1) = "" Then

        strExePath = App.Path

    Else

        strExePath = App.Path & ""

    End If

    intErrLogFileHandle = FreeFile()

Open strExePath + "Err.log" For Append Shared As intErrLogFileHandle

 

        在主窗體退出函數(shù)中添加如下代碼:

‘******************************************************

‘關(guān)閉錯誤日志文件

‘******************************************************

 

    Close #intErrLogFileHandle

 

        在某個Module中添加:

‘******************************************************

‘寫入錯誤日志

‘******************************************************

Public Sub WriteErrLogFile(ByVal strSub As String, ByVal strErr As String)

    Print #intErrLogFileHandle, Date, Time, strSub, strErr

End Sub

 

        在每個過程或自定義的函數(shù)中,使用如下的系統(tǒng)錯誤捕獲機(jī)制:

Public Function ForExample(…………) As Long

 

    On Error Goto FuncError

 

    ForExample=True

 

    ………………………

    ………………………

 

    Exit Function

 

FuncError:

    ForExample=False

    WriteErrLogFile " ForExample ", "錯誤號:" & Err.Number & ",錯誤源:" & Err.Source & ",錯誤描述:" & Err.Description

    MsgBox  "……… ", vbCritical

    ‘在此作內(nèi)存資源回收工作

 

End Function

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
編程入門網(wǎng)-VB編程的七個優(yōu)良習(xí)慣
對C#.NET編程規(guī)范的個人見解
全方位分析VB.NET編碼規(guī)范
VBA編寫基礎(chǔ)的一些說明
(轉(zhuǎn))vb拾遺*2
(1) VB編程基礎(chǔ)
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服