Konvence kódování jazyka Visual Basic
Microsoft vyvíjí, ukázek a dokumentace, postupujte podle pokynů v tomto tématu.Pokud budete postupovat podle stejného kódování úmluv, může získat následující výhody:
Váš kód bude mít jednotný vzhled, tak, aby čtenáři mohou lépe soustředit na obsah, nikoli rozložení.
Čtenářům pochopit váš kód více rychle protože využijí předpoklady, na základě předchozích zkušeností.
Můžete kopírovat, změnit a snadněji spravovat kód.
Můžete zajistit, aby váš kód ukazuje "osvědčené postupy" v jazyce Visual Basic.
Zásady vytváření názvů
Informace o obecných zásadách pro pojmenování naleznete v tématu Guidelines for Names téma.
Nepoužívejte jako součást názvu proměnné "My" nebo "my".Tento postup vytvoří záměně s My objekty.
Není třeba měnit názvy objektů v automaticky vygenerovaný kód tak, aby byly podle pokynů.
Rozložení konvence
Nahradit tabulátory mezerami a použít inteligentní odsazení s odsazením čtyři místa.Další informace naleznete v tématu Jak: nastavení kartu Editor a odsazení.
Použití jsi výpis (přeformátování) kódu přeformátování kódu v editoru kódu.Další informace naleznete v tématu Základní možnosti textového editoru (Visual Basic).
Použijte pouze jeden příkaz na každém řádku.Nepoužívejte znak oddělovače řádku jazyka Visual Basic (:).)
Je-li to jazyk umožňuje nepoužívejte znak pokračování řádku explicitní "_" namísto implicitní pokračování řádku.
Používejte pouze jedno prohlášení na jeden řádek.
Pokud jsi výpis (přeformátování) kódu nemá formát pokračování řádky automaticky, ručně odsazení pokračování řádky jednu zarážku tabulátoru.Nicméně vždy zarovnaná vlevo položek v seznamu.
a As Integer, b As Integer
Přidejte alespoň jeden prázdný řádek mezi definice metody a vlastnosti.
Přidávání poznámek konvence
Vložte komentáře na samostatném řádku namísto na konci řádku kódu.
Spuštění text poznámky s velkým písmenem a ukončení komentář s dobou.
Vložte jednu mezeru mezi oddělovačem komentářů (') a text poznámky.
' Here is a comment.
Ne uzavřete komentář formátované bloky hvězdičky.
Struktura programu
Při použití Main metody, používají výchozí konstrukce pro nové aplikace konzoly a My pro argumenty příkazového řádku.
Sub Main() For Each argument As String In My.Application.CommandLineArgs ' Add code here to use the string variable. Next End Sub
Pokyny pro jazyk
Datový typ String
Chcete-li zřetězení řetězců, použijte znak ampersand (&).
MsgBox("hello" & vbCrLf & "goodbye")
Přidat řetězce ve smyčkách, použít StringBuilder objektu.
Dim longString As New System.Text.StringBuilder For count As Integer = 1 To 1000 longString.Append(count) Next
Uvolněné delegátů v obslužné rutině události
Nesplňují explicitně argumenty (objekt a EventArgs) do obslužné rutiny události.Pokud nepoužíváte argumenty události, které jsou předány události (například odesílatele jako objekt, e jako EventArgs), použijte uvolněné delegátů a vynechat argumentů události ve vašem kódu:
Public Sub Form1_Load() Handles Form1.Load
End Sub
Nepodepsaný datový typ.
- Použití Integer spíše než nepodepsané typy, s výjimkou případů, kdy jsou nezbytné.
Matice
Krátké syntaxi používejte, když inicializujete polí v řádku prohlášení.Například použijte následující syntaxi.
Dim letters1 As String() = {"a", "b", "c"}
Nepoužívejte následující syntaxi.
Dim letters2() As String = New String() {"a", "b", "c"}
Vložte pole označení typu, nikoli proměnné.Například použijte následující syntaxi:
Dim letters4 As String() = {"a", "b", "c"}
Nepoužívejte následující syntaxi:
Dim letters3() As String = {"a", "b", "c"}
Je-li deklarovat a inicializovat pole základní datové typy, použijte syntaxi {}.Například použijte následující syntaxi:
Dim letters5() As String = {"a", "b", "c"}
Nepoužívejte následující syntaxi:
Dim letters6(2) As String letters6(0) = "a" letters6(1) = "b" letters6(2) = "c"
Používá s klíčovým slovem
Provedete-li série volání jeden objekt, zvažte použití With klíčové slovo:
With orderLog
.Log = "Application"
.Source = "Application Name"
.MachineName = "Computer Name"
End With
Použijte Try...Catch a pomocí příkazů při použití zpracování výjimek
Nepoužívejte On Error Goto.
Použijte klíčové slovo IsNot
Použití IsNot klíčové slovo namísto Not...Is Nothing.
Nové klíčové slovo
Používejte krátké instance.Například použijte následující syntaxi:
Dim employees As New List(Of String)
Na předchozím řádku odpovídá tento:
Dim employees2 As List(Of String) = New List(Of String)
Používejte inicializátory objektů pro nové objekty namísto konstruktor bez parametrů:
Dim orderLog As New EventLog With { .Log = "Application", .Source = "Application Name", .MachineName = "Computer Name"}
Zpracování událostí
Use Handles rather than AddHandler:
Private Sub ToolStripMenuItem1_Click() Handles ToolStripMenuItem1.Click End Sub
Použití AddressOfa výslovně instanciovat delegáta:
Dim closeItem As New ToolStripMenuItem( "Close", Nothing, AddressOf ToolStripMenuItem1_Click) Me.MainMenuStrip.Items.Add(closeItem)
Když definujete události, použijte krátký syntaxi a nechat kompilátor definování delegáta:
Public Event SampleEvent As EventHandler(Of SampleEventArgs) ' or Public Event SampleEvent(ByVal source As Object, ByVal e As SampleEventArgs)
Nelze ověřit, zda je událost Nothing (null), než zavoláte RaiseEvent metoda.RaiseEventkontroluje Nothing před vyvolá událost.
Použití sdílených členů
Volání Shared členy pomocí názvu třídy, nikoli z proměnné instance.
Použít literály XML
Literály XML zjednodušit nejobvyklejších úkolů, které se vyskytnou při práci s XML (například zatížení dotazu a transformace).Při vývoji XML, postupujte podle těchto pokynů:
Literály XML slouží k vytváření dokumentů XML a fragmenty namísto přímé volání rozhraní API XML.
Importujte jmenných prostorů XML na úrovni souboru nebo projektu využít k optimalizaci výkonu pro XML literály.
Pomocí vlastnosti osy XML přístup prvky a atributy v dokumentu XML.
Vložené výrazy použít, zahrnout hodnoty a vytvořit z existující hodnoty namísto volání rozhraní API XML Add metoda:
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
Dotazy LINQ
Použití smysluplné názvy proměnných dotazu:
Dim seattleCustomers = From cust In customers Where cust.City = "Seattle"
Zadejte názvy prvků v dotazu, abyste se ujistili, že názvy vlastností anonymní typů správně realizují pomocí Pascal velikost písmen:
Dim customerOrders = From customer In customers Join order In orders On customer.CustomerID Equals order.CustomerID Select Customer = customer, Order = order
Vlastnosti přejmenujte názvy vlastností ve výsledku by být nejednoznačný.Například pokud dotaz vrátí zákazníkovi, název a ID objednávky, přejmenujte je místo ponechává jako Name a ID ve výsledku:
Dim customerOrders2 = From cust In customers Join ord In orders On cust.CustomerID Equals ord.CustomerID Select CustomerName = cust.Name, OrderID = ord.ID
V prohlášení o rozsahu proměnných a proměnných dotazu použijte odvození typu proměnné:
Dim customerList = From cust In customers
Zarovnat klauzule dotazu pod From prohlášení:
Dim newyorkCustomers = From cust In customers Where cust.City = "New York" Select cust.LastName, cust.CompanyName
Použití Where doložky před druhý dotaz klauzule tak, aby pozdější klauzule dotazu pracují filtrované sady dat:
Dim newyorkCustomers2 = From cust In customers Where cust.City = "New York" Order By cust.LastName
Použití Join klauzule explicitně definovat operaci spojení, namísto použití Where implicitně definovat operace join klauzule:
Dim customerList2 = From cust In customers Join order In orders On cust.CustomerID Equals order.CustomerID Select cust, order