Udostępnij za pośrednictwem


Konwencje kodowania języka Visual Basic

Microsoft rozwija się próbki i dokumentacji, które należy przestrzegać zasad w tym temacie.Jeśli się do tych samych konwencji kodowania, może uzyskać następujące korzyści:

  • Twój kod będzie miał jednolity wygląd, tak, że czytelnik może lepiej skupić się na zawartości, układu nie.

  • Czytelnicy zrozumieć swój kod bardziej szybko ponieważ mogą one założenia, na podstawie poprzednich doświadczeń.

  • Można skopiować, zmienić i łatwiej utrzymać kod.

  • Możesz pomóc zapewnić, że Twój kod pokazuje "Najważniejsze wskazówki" dla programu Visual Basic.

Konwencje nazewnictwa

  • Aby uzyskać informacje o zasadach nazywania, zobacz Guidelines for Names tematu.

  • Nie należy używać "My" lub "my" jako część nazwy zmiennej.Praktyka ta tworzy pomylenia ich z My obiektów.

  • Nie trzeba zmieniać nazwy obiektów w automatycznie wygenerowany kod, aby nadawały się wytycznymi.

Konwencje układu

  • Wstaw tabulatory jako spacje, a następnie Użyj inteligentnego wcięcia z wcięciami cztery miejsca.Aby uzyskać więcej informacji, zobacz Jak: Ustaw opcje wcięcie i kartę Edytor.

  • Użycie całkiem aukcji (formatowanie) kodu sformatować kodu w edytorze kodu.Aby uzyskać więcej informacji, zobacz Podstawowe opcje edytora tekstów (Visual Basic).

  • Za pomocą instrukcji tylko jeden na wiersz.Nie używaj znak separatora wiersza języka Visual Basic (:).)

  • Unikaj używania znaku kontynuacji wiersza jawne "_" na rzecz kontynuacji wiersza niejawna, wszędzie tam, gdzie język pozwala na to.

  • Użyj tylko jedna deklaracja na wiersz.

  • Jeśli całkiem aukcji (formatowanie) kodu nie Formatuj linie kontynuacji automatycznie, ręcznie wcięcie kontynuacji jednego tabulatora wierszy.Jednak zawsze po lewej stronie wyrównanie elementów na liście.

    a As Integer,
    b As Integer
    
  • Dodaj co najmniej jeden pusty wiersz między definicje metod i właściwości.

Konwencje komentowania

  • Umieścić komentarze w osobnym wierszu zamiast na końcu wiersza kodu.

  • Rozpocząć tekst komentarza od wielkiej litery, a tekst komentarza koniec o takim samym okresie.

  • Włóż jedną spację między ogranicznika komentarza (') i tekst komentarza.

    ' Here is a comment.
    
  • Nie otaczają komentarze z sformatowanych bloków gwiazdek.

Struktura programu

  • Podczas korzystania z Main metoda, używać konstruują domyślne dla nowych aplikacji konsoli, a My dla argumentów wiersza polecenia.

    Sub Main()
      For Each argument As String In My.Application.CommandLineArgs
        ' Add code here to use the string variable.
      Next
    End Sub
    

Wskazówki dotyczące języka

h63fsef3.collapse_all(pl-pl,VS.110).gifTyp danych String

  • Do połączenia ciągów, użyty znak (&).

    MsgBox("hello" & vbCrLf & "goodbye")
    
  • Aby dołączyć ciągów w pętli, należy użyć StringBuilder obiektu.

    Dim longString As New System.Text.StringBuilder
    For count As Integer = 1 To 1000
      longString.Append(count)
    Next
    

h63fsef3.collapse_all(pl-pl,VS.110).gifObniżone delegatów w procedurach obsługi zdarzeń

Nie są jawnie transakcjami argumenty (obiekt i EventArgs) do obsługi zdarzeń.Jeśli argumenty zdarzeń, które są przekazywane do zdarzenia (na przykład nadawcy jako obiekt, e EventArgs) nie jest używany, użycie delegatów swobodnej i pominąć argumenty zdarzeń w kodzie:

Public Sub Form1_Load() Handles Form1.Load
End Sub

h63fsef3.collapse_all(pl-pl,VS.110).gifTyp danych bez znaku

  • Użycie Integer zamiast niepodpisane typów, z wyjątkiem przypadków, jeżeli są niezbędne.

h63fsef3.collapse_all(pl-pl,VS.110).gifTablice

  • Podczas inicjowania tablic w wierszu deklaracji, użyj skróconej składni.Na przykład należy użyć następującej składni.

    Dim letters1 As String() = {"a", "b", "c"}
    

    Nie należy używać następującej składni.

    Dim letters2() As String = New String() {"a", "b", "c"}
    
  • W typie, a nie na zmiennej, należy umieścić oznaczenie tablicy.Na przykład użyć następującej składni:

    Dim letters4 As String() = {"a", "b", "c"}
    

    Nie należy używać następującej składni:

    Dim letters3() As String = {"a", "b", "c"}
    
  • Po zadeklarowaniu i zainicjować tablice typów podstawowych danych, należy użyć składni {}.Na przykład użyć następującej składni:

    Dim letters5() As String = {"a", "b", "c"}
    

    Nie należy używać następującej składni:

    Dim letters6(2) As String
    letters6(0) = "a"
    letters6(1) = "b"
    letters6(2) = "c"
    

h63fsef3.collapse_all(pl-pl,VS.110).gifUżyj ze słowem kluczowym

Podczas dokonywania kolejnych zaproszeń do jednego obiektu, należy rozważyć użycie With słowa kluczowego:

With orderLog
  .Log = "Application"
  .Source = "Application Name"
  .MachineName = "Computer Name"
End With

h63fsef3.collapse_all(pl-pl,VS.110).gifNależy używać instrukcji Try...CATCH i za pomocą instrukcji, korzystając z obsługi wyjątków

Nie należy używać On Error Goto.

h63fsef3.collapse_all(pl-pl,VS.110).gifZa pomocą słowa kluczowego IsNot

Użycie IsNot słowa kluczowego, a nie Not...Is Nothing.

h63fsef3.collapse_all(pl-pl,VS.110).gifNowe słowo kluczowe

  • Używać krótkich podczas tworzenia wystąpienia.Na przykład użyć następującej składni:

    Dim employees As New List(Of String)
    

    Poprzedzającego go wiersza jest równoważne to:

    Dim employees2 As List(Of String) = New List(Of String)
    
  • Użyj obiektu Inicjatory dla nowych obiektów zamiast konstruktora bez parametrów:

    Dim orderLog As New EventLog With { 
        .Log = "Application", 
        .Source = "Application Name", 
        .MachineName = "Computer Name"}
    

h63fsef3.collapse_all(pl-pl,VS.110).gifObsługa zdarzeń

  • Use Handles rather than AddHandler:

    Private Sub ToolStripMenuItem1_Click() Handles ToolStripMenuItem1.Click
    End Sub
    
  • Użycie AddressOfi nie instancji pełnomocnik jawnie:

    Dim closeItem As New ToolStripMenuItem( 
        "Close", Nothing, AddressOf ToolStripMenuItem1_Click)
    Me.MainMenuStrip.Items.Add(closeItem)
    
  • Podczas definiowania zdarzenie, użyj skróconej składni i kompilator zdefiniować delegata:

    Public Event SampleEvent As EventHandler(Of SampleEventArgs)
    ' or
    Public Event SampleEvent(ByVal source As Object, 
                              ByVal e As SampleEventArgs)
    
  • Sprawdza, czy zdarzenie jest Nothing (null), zanim zadzwonisz do RaiseEvent metoda.RaiseEventsprawdza, czy Nothing przed go wywołuje zdarzenie.

h63fsef3.collapse_all(pl-pl,VS.110).gifZa pomocą udostępnionych elementów członkowskich

Call Shared elementów członkowskich przy użyciu nazwy klasy, nie ze zmienną instancji.

h63fsef3.collapse_all(pl-pl,VS.110).gifUżywaj literałów XML

Literały XML uprościć do najczęściej wykonywanych zadań, które można napotkać podczas pracy z danymi XML (na przykład, obciążenia, kwerendy i transformacji).Gdy tworzysz za pomocą języka XML, należy przestrzegać następujących zasad:

  • Literały XML umożliwia tworzenie dokumentów XML i fragmentów zamiast wywoływania interfejsów API XML bezpośrednio.

  • Importowanie obszarów nazw XML na poziomie pliku lub projektu, aby skorzystać z optymalizacji wydajności w literałach XML.

  • Właściwości osi XML umożliwia dostęp do elementów i atrybutów w dokumencie XML.

  • Aby uwzględnić wartości i utworzyć XML na podstawie istniejących wartości, a nie za pomocą wywołania interfejsu API, takie jak za pomocą wyrażeń osadzony 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
    

h63fsef3.collapse_all(pl-pl,VS.110).gifZapytań LINQ

  • Użyj znaczące nazwy dla zmiennych kwerendy:

    Dim seattleCustomers = From cust In customers 
                           Where cust.City = "Seattle"
    
  • Nazwy elementów w kwerendzie, aby upewnić się, że właściwość nazwy typów anonimowy poprawnie kapitalizacji przy użyciu języka Pascal obudowy:

    Dim customerOrders = From customer In customers 
                         Join order In orders 
                           On customer.CustomerID Equals order.CustomerID 
                         Select Customer = customer, Order = order
    
  • Zmień nazwę właściwości, gdy nazwy właściwości, w wyniku będzie niejednoznaczne.Na przykład, jeśli kwerenda zwraca klienta, nazwę i identyfikator zamówienia, zmienić je zamiast pozostawić je jako Name i ID w wyniku:

    Dim customerOrders2 = From cust In customers 
                          Join ord In orders
                            On cust.CustomerID Equals ord.CustomerID 
                          Select CustomerName = cust.Name, 
                                 OrderID = ord.ID
    
  • Użyj wnioskowanie w deklaracji zmiennych kwerendy i zakresu zmiennych:

    Dim customerList = From cust In customers
    
  • Wyrównaj klauzul kwerendy pod From instrukcji:

    Dim newyorkCustomers = From cust In customers 
                           Where cust.City = "New York" 
                           Select cust.LastName, cust.CompanyName
    
  • Użycie Where klauzule przed inne kwerendy klauzule tak, aby później klauzule kwerendy działają na filtrowanej zestaw danych:

    Dim newyorkCustomers2 = From cust In customers 
                            Where cust.City = "New York" 
                            Order By cust.LastName
    
  • Użycie Join klauzuli do jednoznacznego określania operacji join, zamiast korzystać z Where klauzula niejawnie określenie operacji sprzężenia:

    Dim customerList2 = From cust In customers 
                        Join order In orders 
                          On cust.CustomerID Equals order.CustomerID 
                        Select cust, order
    

Zobacz też

Inne zasoby

Secure, wytyczne dotyczące programowania