Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Microsoft utvecklar exempel och dokumentation som följer riktlinjerna i det här avsnittet. Om du följer samma kodningskonventioner kan du få följande fördelar:
Koden kommer att ha ett konsekvent utseende, så att läsarna bättre kan fokusera på innehåll, inte layout.
Läsarna förstår koden snabbare eftersom de kan göra antaganden baserat på tidigare erfarenheter.
Du kan kopiera, ändra och underhålla koden enklare.
Du hjälper till att se till att koden visar "metodtips" för Visual Basic.
Namngivningskonventioner
Information om namngivningsriktlinjer finns i avsnittet Namngivningsriktlinjer .
Använd inte "My" eller "my" som en del av ett variabelnamn. Den här metoden skapar förvirring med objekten
My.Du behöver inte ändra namnen på objekt i automatiskt genererad kod för att få dem att passa riktlinjerna.
Layoutkonventioner
Infoga flikar som blanksteg och använd smart indragning med fyra blanksteg.
Använd Pretty listing (omformatering) av kod för att omformatera din kod i kodredigeraren. Mer information finns i Alternativ, Textredigerare, Grundläggande (Visual Basic).
Använd endast ett påstående per rad. Använd inte linjeavgränsartecknet Visual Basic (
:).Undvik att använda det explicita radfortsättningstecknet "
_" till förmån för implicit radfortsättning där språket tillåter det.Använd endast en deklaration per rad.
Om Snygg listning (omformatering) av kod inte formaterar fortsättningsrader automatiskt, indenterar du fortsättningsrader manuellt med ett tabbstopp. Men alltid vänsterjustera objekt i en lista.
a As Integer, b As IntegerLägg till minst en tom rad mellan metod- och egenskapsdefinitioner.
Kommenteringskonventioner
Placera kommentarer på en separat rad i stället för i slutet av en kodrad.
Starta kommentarstexten med en versal bokstav och avsluta kommentarstexten med en punkt.
Infoga ett blanksteg mellan kommentars avgränsare (
') och kommentarstexten.' Here is a comment.Omge inte kommentarer med formaterade block av asterisker.
Programstruktur
När du använder
Mainmetoden använder du standardkonstruktionen för nya konsolprogram och använderMyför kommandoradsargument.Sub Main() For Each argument As String In My.Application.CommandLineArgs ' Add code here to use the string variable. Next End Sub
Språkriktlinjer
Strängdatatyp
Använd stränginterpolation för att sammanfoga korta strängar, enligt följande kod.
MsgBox($"hello{vbCrLf}goodbye")Om du vill lägga till strängar i loopar använder du objektet StringBuilder .
Dim longString As New System.Text.StringBuilder For count As Integer = 1 To 1000 longString.Append(count) Next
Avslappnade ombud i händelsehanterare
Kvalificera inte uttryckligen argumenten (Object och EventArgs) till händelsehanterare. Om du inte använder de händelseargument som skickas till en händelse (till exempel sender As Object, e As EventArgs), bör du använda avslappnade delegater och utelämna händelseargumenten i koden.
Public Sub Form1_Load() Handles Form1.Load
End Sub
Osignerad datatyp
- Använd
Integeri stället för osignerade typer, förutom där de är nödvändiga.
Matriser
Använd den korta syntaxen när du initierar matriser på deklarationsraden. Använd till exempel följande syntax.
Dim letters1 As String() = {"a", "b", "c"}Använd inte följande syntax.
Dim letters2() As String = New String() {"a", "b", "c"}Placera matrisdesignatorn på typen, inte på variabeln. Använd till exempel följande syntax:
Dim letters4 As String() = {"a", "b", "c"}Använd inte följande syntax:
Dim letters3() As String = {"a", "b", "c"}Använd syntaxen { } när du deklarerar och initierar matriser med grundläggande datatyper. Använd till exempel följande syntax:
Dim letters5 As String() = {"a", "b", "c"}Använd inte följande syntax:
Dim letters6(2) As String letters6(0) = "a" letters6(1) = "b" letters6(2) = "c"
Använd nyckelordet Med
När du gör en serie anrop till ett objekt bör du överväga att använda nyckelordet With :
With orderLog
.Log = "Application"
.Source = "Application Name"
.MachineName = "Computer Name"
End With
Använd prova... Catch and Using-instruktioner när du använder undantagshantering
Använd inte On Error Goto.
Använd nyckelordet IsNot
Använd ... IsNot Nothing i stället för Not ... Is Nothing.
Nytt nyckelord
Använd kort instansiering. Använd till exempel följande syntax:
Dim employees As New List(Of String)Föregående rad motsvarar följande:
Dim employees2 As List(Of String) = New List(Of String)Använd objektinitierare för nya objekt i stället för den parameterlösa konstruktorn:
Dim orderLog As New EventLog With { .Log = "Application", .Source = "Application Name", .MachineName = "Computer Name"}
Händelsehantering
Använd
Handlesi ställetAddHandlerför :Private Sub ToolStripMenuItem1_Click() Handles ToolStripMenuItem1.Click End SubAnvänd
AddressOfoch instansiera inte ombudet explicit:Dim closeItem As New ToolStripMenuItem( "Close", Nothing, AddressOf ToolStripMenuItem1_Click) Me.MainMenuStrip.Items.Add(closeItem)När du definierar en händelse använder du den korta syntaxen och låter kompilatorn definiera ombudet:
Public Event SampleEvent As EventHandler(Of SampleEventArgs) ' or Public Event SampleEvent(ByVal source As Object, ByVal e As SampleEventArgs)Kontrollera inte om en händelse är
Nothing(null) innan du anroparRaiseEventmetoden.RaiseEventkontrollerarNothinginnan det utlöser händelsen.
Använda delade medlemmar
Anropa Shared medlemmar med hjälp av klassnamnet, inte från en instansvariabel.
Använd XML-literaler
XML-literaler förenklar de vanligaste uppgifterna som du stöter på när du arbetar med XML (till exempel belastning, fråga och transformering). När du utvecklar med XML följer du dessa riktlinjer:
Använd XML-literaler för att skapa XML-dokument och fragment i stället för att anropa XML-API:er direkt.
Importera XML-namnområden på fil- eller projektnivå för att dra nytta av prestandaoptimeringarna för XML-literaler.
Använd XML-axelns egenskaper för att komma åt element och attribut i ett XML-dokument.
Använd inbäddade uttryck för att inkludera värden och för att skapa XML från befintliga värden i stället för att använda API-anrop, till exempel
Addmetoden: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-frågor
Använd meningsfulla namn för frågevariabler:
Dim seattleCustomers = From cust In customers Where cust.City = "Seattle"Ange namn på element i en fråga för att se till att egenskapsnamnen för anonyma typer är korrekt skrivna med stor bokstav enligt Pascal-notation.
Dim customerOrders = From customer In customers Join order In orders On customer.CustomerID Equals order.CustomerID Select Customer = customer, Order = orderByt namn på egenskaper när egenskapsnamnen i resultatet skulle vara tvetydiga. Om din fråga till exempel returnerar ett kundnamn och ett order-ID byter du namn på dem i stället för att lämna dem som
NameochIDi resultatet:Dim customerOrders2 = From cust In customers Join ord In orders On cust.CustomerID Equals ord.CustomerID Select CustomerName = cust.Name, OrderID = ord.IDAnvänd typinferens i deklarationen av frågevariabler och intervallvariabler:
Dim customerList = From cust In customersJustera frågesatser under instruktionen
From:Dim newyorkCustomers = From cust In customers Where cust.City = "New York" Select cust.LastName, cust.CompanyNameAnvänd
Wheresatser före andra frågesatser så att senare frågesatser fungerar på den filtrerade datauppsättningen:Dim newyorkCustomers2 = From cust In customers Where cust.City = "New York" Order By cust.LastNameJoinAnvänd -satsen för att explicit definiera en kopplingsåtgärd i stället för att användaWhere-satsen för att implicit definiera en kopplingsåtgärd:Dim customerList2 = From cust In customers Join order In orders On cust.CustomerID Equals order.CustomerID Select cust, order