Visual Basic Kódolási Konvenciók
A Microsoft olyan mintákat és dokumentációkat fejleszt, amelyek a jelen témakörben szereplő irányelveket követik. Ha ugyanazokat a kódolási konvenciókat követi, a következő előnyöket élvezheti:
A kód egységes megjelenésű lesz, így az olvasók jobban összpontosíthatnak a tartalomra, nem pedig az elrendezésre.
Az olvasók gyorsabban megértik a kódot, mert a korábbi tapasztalatok alapján tehetnek feltételezéseket.
A kódot egyszerűbben másolhatja, módosíthatja és karbantarthatja.
Segít meggyőződni arról, hogy a kód bemutatja a Visual Basic "ajánlott eljárásait".
Elnevezési egyezmények
Az elnevezési irányelvekről további információt az elnevezési irányelvek témakörében talál.
Ne használja a "Saját" vagy a "saját" kifejezést változónév részeként. Ez a gyakorlat összezavarja az
My
objektumokat.Az automatikusan létrehozott kódban nem kell módosítania az objektumok nevét, hogy azok megfeleljenek az irányelveknek.
Elrendezési konvenciók
Lapfülek beszúrása szóközökként, és intelligens behúzás használata négy szóköz behúzással.
A kód szerkesztéséhez használja a Szép lista (újraformázás) elemet a kódszerkesztőben. További információ: Beállítások, Szövegszerkesztő, Alapszintű (Visual Basic).
Soronként csak egy utasítást használjon. Ne használja a Visual Basic vonalelválasztó karaktert (
:
).Kerülje a "
_
" explicit vonal folytatási karakter használatát az implicit vonal folytatása mellett, ahol a nyelv lehetővé teszi.Soronként csak egy deklarációt használjon.
Ha a kód szép listaeleme (újraformázása) nem formázza automatikusan a folytatási sorokat, manuálisan behúzza a folytatási sorokat egy tabulátorral. A lista elemei azonban mindig balra igazíthatók.
a As Integer, b As Integer
Adjon hozzá legalább egy üres sort a metódus és a tulajdonságdefiníciók között.
Megjegyzésekre vonatkozó egyezmények
A megjegyzéseket ne a kódsor végén, hanem egy külön sorban tegye.
Kezdje el a megjegyzés szövegét nagybetűvel, a záró megjegyzés szövegét pedig ponttal.
Szúrjon be egy szóközt a megjegyzéselválasztó (
'
) és a megjegyzésszöveg közé.' Here is a comment.
Ne vegye körül a megjegyzéseket csillagokkal formázott blokkokkal.
Programstruktúra
A metódus használatakor
Main
használja az új konzolalkalmazások alapértelmezett szerkezetét, és használjaMy
parancssori argumentumokhoz.Sub Main() For Each argument As String In My.Application.CommandLineArgs ' Add code here to use the string variable. Next End Sub
Nyelvi irányelvek
Sztring adattípusa
Sztringinterpolációval rövid sztringeket fűzhet össze az alábbi kódban látható módon.
MsgBox($"hello{vbCrLf}goodbye")
A sztringek hurkokban való hozzáfűzéséhez használja az StringBuilder objektumot.
Dim longString As New System.Text.StringBuilder For count As Integer = 1 To 1000 longString.Append(count) Next
Nyugodt meghatalmazottak az eseménykezelőkben
Ne minősítse explicit módon az argumentumokat (Object
és EventArgs
) az eseménykezelőknek. Ha nem használja az eseménynek átadott eseményargumentumokat (például sender As Object
, e As EventArgs
), használjon nyugodt meghatalmazottakat, és hagyja ki az eseményargumentumokat a kódban:
Public Sub Form1_Load() Handles Form1.Load
End Sub
Aláíratlan adattípus
- Használjon
Integer
nem aláírt típusok helyett, kivéve, ha szükség van rájuk.
Tömbök
Használja a rövid szintaxist, amikor tömböket inicializál a deklarációs sorban. Használja például a következő szintaxist.
Dim letters1 As String() = {"a", "b", "c"}
Ne használja a következő szintaxist.
Dim letters2() As String = New String() {"a", "b", "c"}
A tömbtervezőt ne a változóra, hanem a típusra helyezze. Használja például a következő szintaxist:
Dim letters4 As String() = {"a", "b", "c"}
Ne használja a következő szintaxist:
Dim letters3() As String = {"a", "b", "c"}
Az alapszintű adattípusok tömbjeinek deklarálása és inicializálásakor használja a { } szintaxist. Használja például a következő szintaxist:
Dim letters5 As String() = {"a", "b", "c"}
Ne használja a következő szintaxist:
Dim letters6(2) As String letters6(0) = "a" letters6(1) = "b" letters6(2) = "c"
A kulcsszó használata
Amikor egy objektumra irányuló hívássorozatot indít, fontolja meg a With
kulcsszó használatát:
With orderLog
.Log = "Application"
.Source = "Application Name"
.MachineName = "Computer Name"
End With
A Kipróbálás... Utasítások befogása és használata a kivételkezelés használatakor
Ne használja On Error Goto
.
Az IsNot kulcsszó használata
Használja ... IsNot Nothing
ahelyett, hogy Not ... Is Nothing
.
Új kulcsszó
Használjon rövid példányt. Használja például a következő szintaxist:
Dim employees As New List(Of String)
Az előző sor a következőnek felel meg:
Dim employees2 As List(Of String) = New List(Of String)
A paraméter nélküli konstruktor helyett használjon objektum inicializálókat új objektumokhoz:
Dim orderLog As New EventLog With { .Log = "Application", .Source = "Application Name", .MachineName = "Computer Name"}
Eseménykezelés
Használja
Handles
a következő helyettAddHandler
:Private Sub ToolStripMenuItem1_Click() Handles ToolStripMenuItem1.Click End Sub
Használja
AddressOf
, és ne hozza létre explicit módon a meghatalmazottat:Dim closeItem As New ToolStripMenuItem( "Close", Nothing, AddressOf ToolStripMenuItem1_Click) Me.MainMenuStrip.Items.Add(closeItem)
Esemény definiálásakor használja a rövid szintaxist, és hagyja, hogy a fordító definiálja a meghatalmazottat:
Public Event SampleEvent As EventHandler(Of SampleEventArgs) ' or Public Event SampleEvent(ByVal source As Object, ByVal e As SampleEventArgs)
A metódus meghívása
RaiseEvent
előtt ne ellenőrizze, hogy egyNothing
esemény null értékű-e.RaiseEvent
ellenőrzi,Nothing
mielőtt az eseményt előhozta volna.
Megosztott tagok használata
A tagok hívása Shared
az osztálynév használatával, nem példányváltozóból.
XML-literálok használata
Az XML-literálok leegyszerűsítik az XML használata során leggyakrabban előforduló feladatokat (például betöltés, lekérdezés és átalakítás). Ha XML-lel fejleszt, kövesse az alábbi irányelveket:
XML-literálok használatával xml-dokumentumokat és -töredékeket hozhat létre az XML API-k közvetlen meghívása helyett.
Importálja az XML-névtereket a fájl vagy a projekt szintjén, hogy kihasználhassa az XML-literálok teljesítményoptimalizálási előnyeit.
Az XML-tengely tulajdonságaival elérheti az XML-dokumentumok elemeit és attribútumait.
Beágyazott kifejezések használata értékek belefoglalására és xml-fájl létrehozására meglévő értékekből API-hívások, például a
Add
metódus használata helyett:Private Function GetHtmlDocument( ByVal items As IEnumerable(Of XElement)) As String Dim htmlDoc = <html> <body> <table border="0" cellspacing="2"> <%= From item In items Select <tr> <td style="width:480"> <%= item.<title>.Value %> </td> <td><%= item.<pubDate>.Value %></td> </tr> %> </table> </body> </html> Return htmlDoc.ToString() End Function
LINQ-lekérdezések
Használjon értelmes neveket a lekérdezési változókhoz:
Dim seattleCustomers = From cust In customers Where cust.City = "Seattle"
Adja meg a lekérdezés elemeinek nevét, hogy a névtelen típusú tulajdonságnevek helyesen legyenek nagybetűsítve Pascal-casing használatával:
Dim customerOrders = From customer In customers Join order In orders On customer.CustomerID Equals order.CustomerID Select Customer = customer, Order = order
Nevezze át a tulajdonságokat, ha az eredményben szereplő tulajdonságnevek nem egyértelműek. Ha például a lekérdezés egy ügyfélnevet és egy rendelésazonosítót ad vissza, nevezze át őket ahelyett, hogy az eredményként és
ID
az eredményben marad:Name
Dim customerOrders2 = From cust In customers Join ord In orders On cust.CustomerID Equals ord.CustomerID Select CustomerName = cust.Name, OrderID = ord.ID
Használjon típuskövető következtetést a lekérdezési változók és a tartományváltozók deklarációjában:
Dim customerList = From cust In customers
A lekérdezési záradékok igazítása az
From
utasítás alatt:Dim newyorkCustomers = From cust In customers Where cust.City = "New York" Select cust.LastName, cust.CompanyName
Más lekérdezési záradékok előtt használjon
Where
záradékokat, hogy a későbbi lekérdezési záradékok a szűrt adathalmazon működjenek:Dim newyorkCustomers2 = From cust In customers Where cust.City = "New York" Order By cust.LastName
Join
A záradék használatával explicit módon definiálhat illesztési műveletet aWhere
záradék használata helyett, hogy implicit módon definiáljon egy illesztési műveletet:Dim customerList2 = From cust In customers Join order In orders On cust.CustomerID Equals order.CustomerID Select cust, order
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: