1. „&“ ersetzt „+“
2. Bei der Benennung von Variablen sollte die Groß-/Kleinschreibung beachtet werden, die Anweisungen sollten gut organisiert sein und die Wartung des Quellcodes sollte erfolgen
3. Bitte entwickeln Sie die folgenden guten Gewohnheiten der „Objektbenennungskonvention“
4. Bei einfachen Auswahlbedingungen verwenden Sie die Funktion IIf()
5. Versuchen Sie, Debug.Print zum Debuggen zu verwenden
6. Wenn Sie die Eigenschaften eines Objekts wiederholt ändern, versuchen Sie, With...End With zu verwenden
7. Versuchen Sie, Nachrichtensymbole in MsgBox zu verwenden, damit das Programm standardisierter ist. 8. Verwenden Sie nach Möglichkeit Aufzählungen.
1. „&“ ersetzt „+“
In vielen Programmiersprachen wird „+“ zum Verbinden von Zeichenfolgen verwendet, was leicht zu Mehrdeutigkeiten führen kann. Eine gute Vorgehensweise besteht darin, „&“ zum Verketten von Zeichenfolgen zu verwenden.
Falsch:
Dimmen Sie sMessage als String
sMessage = „1“ + „2“
richtig:
Dimmen Sie sMessage als String
sMessage = „1“ & „2“
Hinweis: Nach „&“ steht ein Leerzeichen.
2. Bei der Benennung von Variablen sollte die Groß-/Kleinschreibung beachtet werden, die Anweisungen sollten gut organisiert sein und die Wartung des Quellcodes sollte erfolgen
Vergleichen wir die folgenden zwei Codeteile:
Schwierigen Code lesen:
Dimmen Sie SNAME als String
Dimmen Sie NTURN als Ganzzahl
Wenn NTURN = 0, dann
Wenn SNAME = „vbeden“ Dann
Tun Sie dies, während NTURN < 4
NTURN = NTURN + 1
Schleife
Ende wenn
Ende wenn
Leicht lesbarer Code:
Dimmen Sie sName als String
Dim nTurn As Integer
Wenn nTurn = 0, dann
Wenn sName = „vbeden“ Dann
Tun Sie dies während nTurn < 4
nTurn = nTurn + 1
Schleife
Ende wenn
Ende wenn
[zurück zum Index]
3. Bitte entwickeln Sie die folgenden guten Gewohnheiten der „Objektbenennungskonvention“
Empfohlene Kontrollpräfixe
Beispiel für ein Steuerelement-Präfix
3D-Panel pnl pnlGroup
ADO Data, ado, adoBiblio
Animierte Schaltfläche ani aniMailBox
Kontrollkästchen chk chkReadOnly aktivieren
Kombinationsfeld, Dropdown-Listenfeld cbo cboEnglish
Befehlsschaltfläche cmd cmdExit
Allgemeiner Dialog dlg dlgFileOpen
Kommunikation mit comFax
Steuerelement (wird in Prozeduren verwendet, wenn der spezifische Typ unbekannt ist) ctr ctrCurrent
Daten dat datBiblio
Datengebundenes Kombinationsfeld dbcbo dbcboLanguage
Datengebundenes Raster dbgrd dbgrdQueryResult
Datengebundenes Listenfeld dblst dblstJobType
Datenkombination dbc dbcAuthor
Datenraster dgd dgdTitles
Datenliste dbl dblPublisher
Daten-Repeater drp drpLocation
Datumsauswahl dtp dtpPublished
Verzeichnislistenfeld dir dirSource
Laufwerkslistenfeld drv drvTarget
Dateilistenfeld fil filSource
Flache Bildlaufleiste fsb fsbMove
Formular von frmEntry
Frame fra fraLanguage
Gauge gau gauStatus
GraphgragraUmsatz
Grid grd grdPreise
Hierarchische Flexgrid-Flex-FlexOrders
Horizontale Bildlaufleiste hsb hsbVolume
Bild img imgIcon
Bildkombination imgcbo imgcboProduct
ImageList ist ilsAllIcons
Label lbl lblHelpMessage
Leichtes Kontrollkästchen lwchk lwchkArchive
Leichte Kombinationsbox lwcbo lwcboDeutsch
Leichte Befehlsschaltfläche lwcmd lwcmdRemove
Leichter Rahmen lwfra lwfraSaveOptions
Leichte horizontale Bildlaufleiste lwhsb lwhsbVolume
Leichtes Listenfeld lwlst lwlstCostCenters
Leichte Optionsschaltfläche lwopt lwoptIncomeLevel
Leichtes Textfeld lwtxt lwoptStreet
Leichte vertikale Bildlaufleiste lwvsb lwvsbYear
Linie lin linVertikal
Listenfeld lst lstPolicyCodes
ListView lvw lvwHeadings
MAPI-Nachricht mpm mpmSentMessage
MAPI-Sitzung mps mpsSession
MCI mci mciVideo
Menü mnu mnuFileOpen
Monatsansicht mvw mvwPeriod
MS Chart chSalesbyRegion
MS Flex Grid-Nachricht msgClients
MS Tab mst mstFirst
OLE-Container ole oleWorksheet
Optionsfeld opt optGender
Bildbox pic picVGA
Bildclip clp clpToolbar
ProgressBar prg prgLoadFile
Remote Data rd rdTitles
RichTextBox rtf rtfReport
Form shp shpKreis
Slider sld sldScale
Spin spn spnPages
StatusBar sta staDateTime
SysInfo sys sysMonitor
TabStrip-Registerkarte tabOptions
Textfeld txt txtLastName
Timer tmr tmrAlarm
Symbolleiste tlb tlbActions
TreeView ist eine Organisation
UpDown upd updDirection
Vertikale Bildlaufleiste vsb vsbRate
-------------------------------------------------- ----------------------------------
Empfohlene Präfixe für Data Access Objects (DAO)
Verwenden Sie die folgenden Präfixe, um Datenzugriffsobjekte anzugeben
Beispiel für ein Datenbankobjektpräfix
Container conconReports
Datenbank-Datenbank dbAccounts
DBEngine dbe dbeJet
Dokumentdokument docSalesReport
Feld fld fldAddress
Gruppe grp grpFinance
Index ix idxAge
Parameter prm prmJobCode
QueryDef qry qrySalesByRegion
Recordset rec recForecast
Relation rel relEmployeeDept
TableDef wird noch festgelegt. Kunden müssen noch festgelegt werden
Benutzer usr usrNeu
Arbeitsbereich wsp wspMine
-------------------------------------------------- ----------------------------------
Anwendungen verwenden häufig viele Menüsteuerelemente, und es ist nützlich, über eindeutige Benennungskonventionen für diese Steuerelemente zu verfügen. Zusätzlich zum anfänglichen „mnu“-Tag sollte das Präfix des Menüsteuerelements erweitert werden: Für jede Verschachtelungsebene wird ein zusätzliches Präfix hinzugefügt, wodurch der endgültige Menütitel am Ende der Namenszeichenfolge platziert wird. In der folgenden Tabelle sind einige Beispiele aufgeführt.
Empfohlene Menüpräfixe
Name des Menü-Handlers der Menütitelsequenz
Datei öffnen mnuFileOpen
Datei E-Mail senden mnuFileSendEmail
Datei Fax senden mnuFileSendFax
Formatieren Sie das Zeichen mnuFormatCharacter
Hilfeinhalt mnuHelpContents
Wenn Sie diese Namenskonvention verwenden, werden alle Mitglieder einer bestimmten Menügruppe nacheinander im Visual Basic-Eigenschaftenfenster aufgelistet. Darüber hinaus geben die Namen von Menüsteuerelementen deutlich an, zu welchen Menüelementen sie gehören.
Wählen Sie ein Präfix für andere Steuerelemente
Oben nicht aufgeführte Steuerelemente sollten aus Konsistenzgründen mit einem eindeutigen zwei- oder dreistelligen Präfix standardisiert werden. Verwenden Sie Präfixe mit mehr als drei Zeichen nur dann, wenn eine Klarstellung erforderlich ist.
Namenskonventionen für Konstanten und Variablen
Neben Objekten erfordern auch Konstanten und Variablen wohlgeformte Namenskonventionen. In diesem Abschnitt werden die empfohlenen Konventionen für Konstanten und Variablen aufgeführt, die Visual Basic unterstützt. und erörtert Fragen der Identifizierung von Datentypen und -bereichen.
Variablen sollten immer im kleinstmöglichen Umfang definiert werden. Globale (öffentliche) Variablen können zu äußerst komplexen Zustandsstrukturen führen und die Logik einer Anwendung sehr schwer verständlich machen. Globale Variablen erschweren außerdem die Wiederverwendung und Wartung von Code.
Variablen in Visual Basic können die folgenden Bereiche haben
Bereichsdeklarationsposition sichtbare Position
„Privat“ in einer Prozedur auf Prozedurebene, einer Unterprozedur oder einer Funktionsprozedur in der Prozedur, in der sie deklariert ist
„Privat“ im Deklarationsabschnitt eines Formulars oder Codemoduls auf Modulebene (.frm, .bas) Jede Prozedur in einem Formular oder Codemodul
„Öffentlich“ im Deklarationsabschnitt des globalen Codemoduls (.bas) überall in der Anwendung
Verwenden Sie in einer Visual Basic-Anwendung globale Variablen nur dann, wenn es keine andere bequeme Möglichkeit gibt, Daten zwischen Formularen auszutauschen. Wenn globale Variablen verwendet werden müssen, deklarieren Sie sie in einem einzigen Modul und gruppieren Sie sie nach Funktion. Geben Sie diesem Modul einen aussagekräftigen Namen, um seine Rolle anzugeben, z. B. Public.bas.
Eine gute Codierungspraxis besteht darin, Code zu schreiben, der möglichst modular ist. Wenn Ihre Anwendung beispielsweise ein Dialogfeld anzeigt, fassen Sie alle zum Ausfüllen des Dialogfelds erforderlichen Steuerelemente und Codes in einem einzigen Formular zusammen. Dies hilft dabei, den Code der Anwendung in nützliche Komponenten zu organisieren und den Laufzeitaufwand zu reduzieren.
Mit Ausnahme globaler Variablen (die nicht weitergegeben werden sollten) sollten Prozeduren und Funktionen nur mit den an sie übergebenen Objekten arbeiten. Globale Variablen, die innerhalb einer Prozedur verwendet werden, sollten im Deklarationsabschnitt zu Beginn der Prozedur identifiziert werden. Darüber hinaus sollte ByVal verwendet werden, um Parameter an Sub-Prozeduren und Funktionsprozeduren zu übergeben, es sei denn, es besteht eine offensichtliche Notwendigkeit, den übergebenen Parameterwert zu ändern.
Mit zunehmender Größe des Projekts nimmt der Aufwand für die Festlegung des Gültigkeitsbereichs der Variablen rapide zu. Das Platzieren eines aus einem Buchstaben bestehenden Bereichspräfixes vor dem Typpräfix markiert dieses Wachstum, die Länge des Variablennamens erhöht sich jedoch nicht wesentlich.
Präfix mit variablem Geltungsbereich
Beispiel für ein Bereichspräfix
globaler gstrUserName
Modulebene mmblnCalcInProgress
Lokal zur Verarbeitung ohne dblVelocity
Wenn eine Variable in einem Standardmodul oder einem Formularmodul als Öffentlich deklariert ist, hat die Variable einen globalen Gültigkeitsbereich. Wenn eine Variable in einem Standardmodul bzw. einem Formularmodul als „Privat“ deklariert wird, hat die Variable einen Gültigkeitsbereich auf Modulebene.
Hinweis: Konsistenz ist der Schlüssel zur effektiven Verwendung dieser Technik. Die Syntaxprüfung in Visual Basic erkennt keine Variablen auf Modulebene, die mit „p“ beginnen.
Konstante
Der Hauptteil eines konstanten Namens besteht aus gemischter Groß- und Kleinschreibung, wobei der erste Buchstabe jedes Wortes großgeschrieben wird. Obwohl standardmäßige Visual Basic-Konstanten keine Datentyp- und Bereichsinformationen enthalten, sind Präfixe wie i, s, g und m hilfreich, um den Wert und Bereich einer Konstante zu verstehen. Für Konstantennamen sollten die gleichen Regeln befolgt werden wie für Variablen. Zum Beispiel:
mintUserListMax 'Maximale Begrenzung der Benutzerliste
'(Ganzzahlwert, lokal zum Modul)
gstrNewLine 'Neues Zeilenzeichen
'(String, global von der Anwendung verwendet)
Variable
Das Deklarieren aller Variablen spart Programmierzeit, da weniger Fehler durch Tippvorgänge verursacht werden (z. B. handelt es sich um aUserNameTmp, sUserNameTmp oder sUserNameTemp). Aktivieren Sie auf der Registerkarte „Editor“ des Dialogfelds „Optionen“ die Option „Variablendeklaration erforderlich“. Die Option Explicit-Anweisung erfordert, dass alle Variablen im Visual Basic-Programm deklariert werden.
Variablen sollten ein Präfix vorangestellt werden, um ihren Datentyp anzugeben. Und das Präfix kann erweitert werden, um den Variablenbereich anzuzeigen, insbesondere bei großen Programmen.
Verwenden Sie die folgenden Präfixe, um den Datentyp einer Variablen anzugeben.
Variabler Datentyp
Beispiel für ein Datentyppräfix
String (String-Typ) str strFName
Ganzzahl (kurzer Ganzzahltyp) int intQuantity
Long (langer ganzzahliger Typ) lng lngDistance
Single (Gleitkommazahlentyp mit einfacher Genauigkeit) sng sngAverage
Double (Gleitkommatyp mit doppelter Genauigkeit) dbl dblTolerance
Boolean (boolescher Typ) bln blnFound
Byte (Bytetyp) byt bytRasterData
Datum (Datumstyp) dte dteNow
Währung (Währungsberechnung und Festkomma-Berechnungsart) cur curRevenue
Objekt (Objekttyp) obj objCurrent
Variante vnt vntCheckSum
Beschreiben Sie Variablen- und Prozedurnamen
Der Textkörper eines Variablen- oder Prozedurnamens sollte in gemischter Groß- und Kleinschreibung vorliegen und lang genug sein, um seinen Zweck zu beschreiben. Außerdem sollte der Funktionsname mit einem Verb beginnen, z. B. InitNameArray oder CloseDialog.
Bei häufig verwendeten oder langen Begriffen wird empfohlen, Standardabkürzungen zu verwenden, um die Länge des Namens zu rationalisieren. Im Allgemeinen sind Variablennamen, die länger als 32 Zeichen sind, auf einem VGA-Monitor schwer zu lesen.
Achten Sie bei der Verwendung von Abkürzungen darauf, dass diese im gesamten Antrag einheitlich sind. Wenn Sie in einem Projekt Cnt für eine Weile und Count für eine Weile verwenden, führt dies zu unnötiger Verwirrung.
Benutzerdefinierter Typ
In einem großen Projekt mit vielen benutzerdefinierten Typen ist es oft notwendig, jedem Typ ein eigenes dreistelliges Präfix zu geben. Wenn diese Präfixe mit „u“ beginnen, ist es einfach, diese Typen schnell zu identifizieren, wenn Sie mit einem benutzerdefinierten Typ arbeiten. Beispielsweise kann ucli als Präfix für eine benutzerdefinierte Clienttypvariable verwendet werden.
[zurück zum Index]
4. Bei einfachen Auswahlbedingungen verwenden Sie die Funktion IIf()
Rossos Code:
Wenn nNum = 0, dann
sName = "sancy"
Anders
sName = "Xu"
Ende wenn
Einfacher Code:
sName=IIf(nNum=0,"sancy","Xu")
5. Versuchen Sie, Debug.Print zum Debuggen zu verwenden
Beim Debuggen vieler Anfänger wird MsgBox zum Verfolgen von Variablenwerten verwendet. Tatsächlich kann Debug.Print nicht nur den gleichen Effekt erzielen, sondern muss auch beim endgültigen Kompilieren des Programms ignoriert werden.
allgemein:
MsgBox nName
sollen:
Debug.Print nName
6. Wenn Sie die Eigenschaften eines Objekts wiederholt ändern, versuchen Sie, With...End With zu verwenden
allgemein:
Form1.Height = 5000
Form1.Width = 6000
Form1.Caption = „Das ist MyLabel“
sollen:
Mit Form1
.Höhe = 5000
.Breite = 6000
.Caption = „Das ist MyLabel“
Ende mit
Die Effizienz der Programmausführung dieser Struktur ist relativ hoch, insbesondere bei Schleifenanweisungen.
7. Versuchen Sie, Nachrichtensymbole in MsgBox zu verwenden, damit das Programm standardisierter ist.
Allgemein gesprochen
vbInformation ist eine Nachricht, die zur Bestätigung oder zum erfolgreichen Vorgang verwendet wird
vbExclamation wird verwendet, um Warnmeldungen auszulösen
vbKritische Nachrichten, die zur Auslösung von Krisensituationen verwendet werden
vbQuestion ist eine Nachricht, mit der Fragen gestellt werden
[zurück zum Index]
8. Verwenden Sie nach Möglichkeit Aufzählungen
Das Format der Aufzählung ist
[Öffentlich | Privat] Enum-Name
Mitgliedsname [= konstanter Ausdruck]
Mitgliedsname [= konstanter Ausdruck]
....
Enum beenden
Die Enum-Anweisung enthält die folgenden Teile:
Teilbeschreibung
Öffentlich optional. Gibt an, dass der Enum-Typ im gesamten Projekt sichtbar ist. Der Standardwert für Enum-Typen ist „Öffentlich“.
Privat optional. Gibt an, dass der Enum-Typ nur im deklarierten Modul sichtbar ist.
Name erforderlich. Der Name dieses Enum-Typs. name muss ein gültiger Visual Basic-Bezeichner sein, der zur Angabe des Typs beim Definieren einer Variablen oder eines Parameters dieses Enum-Typs verwendet wird.
Mitgliedsname erforderlich. Ein gültiger Visual Basic-Bezeichner, der den Namen der konstituierenden Elemente dieses Enum-Typs angibt.
Konstanter Ausdruck optional. Der Wert des Elements (vom Typ Long). Kann andere Enum-Typen sein. Wenn konstanter Ausdruck nicht angegeben ist, ist der zugewiesene Wert entweder 0 (wenn das Element der erste Mitgliedsname ist) oder eins größer als der Wert seines unmittelbaren Vorgängers.
veranschaulichen
Die sogenannten Enumerationsvariablen beziehen sich auf Variablen, die mit dem Enum-Typ definiert sind. Sowohl Variablen als auch Parameter können als Enum-Typ definiert werden. Elemente des Enum-Typs werden mit dem in der Enum-Anweisung angegebenen konstanten Wert initialisiert. Der zugewiesene Wert kann positive und negative Zahlen umfassen und kann zur Laufzeit nicht geändert werden. Zum Beispiel:
Enum SecurityLevel IllegalEntry = -1 SecurityLevel1 = 0 SecurityLevel2 = 1 End Enum
Enum-Anweisungen können nur auf Modulebene erscheinen. Nachdem Sie den Enum-Typ definiert haben, können Sie ihn zum Definieren von Variablen, Parametern oder Prozeduren verwenden, die diesen Typ zurückgeben. Aufzählungstypen können nicht mit Modulnamen qualifiziert werden. Öffentliche Enum-Typen in einem Klassenmodul sind keine Mitglieder der Klasse; sie werden einfach in die Typbibliothek geschrieben. In Standardmodulen definierte Aufzählungstypen werden nicht in die Typbibliothek geschrieben. Öffentliche Enum-Typen mit demselben Namen können nicht sowohl in einem Standardmodul als auch in einem Klassenmodul definiert werden, da sie denselben Namespace verwenden. Wenn es in verschiedenen Typbibliotheken zwei Enum-Typen mit demselben Namen, aber unterschiedlichen Mitgliedern gibt, hängt der Verweis auf eine Variable dieses Typs davon ab, welche Typbibliothek eine höhere Referenzpriorität hat.
Sie können den Enum-Typ nicht als Ziel in einem With-Block verwenden.
Beispiel für eine Enum-Anweisung
Das folgende Beispiel veranschaulicht die Verwendung der Enum-Anweisung zum Definieren einer Sammlung benannter Konstanten. In diesem Fall gibt es einige auswählbare Farbkonstanten, die zum Entwerfen des Dateneingabeformulars für die Datenbank verwendet werden.
Öffentliche Enum-Schnittstellenfarben
icMistyRose = &HE1E4FF&
icSlateGray = &H908070&
icDodgerBlue = &HFF901E&
icDeepSkyBlue = &HFFFF00&
icSpringGreen = &H7FFF00&
icForestGreen = &H228B22&
icGoldenrod = &H20A5DA&
icFirebrick = &H2222B2&
Enum beenden
Der Vorteil besteht darin, dass die Programmierung beschleunigt wird