Udostępnij za pośrednictwem


Visual Basic — Konwencje kodowania

Microsoft rozwija przykłady i dokumentację, które postępują zgodnie ze wskazówkami podanymi w tym temacie.Dzięki stosowaniu tych samych konwencji kodowania możesz osiągnąć następujące korzyści:

  • Twój kod będzie miał jednolity wygląd, żeby czytelnicy mogli lepiej skupić się na treści, a nie na układzie.

  • Czytniki rozumieją twój kod lepiej, ponieważ mogą robić więjsze założenia na podstawie poprzednich doświadczeń.

  • Można łatwiej kopiować, zmieniać i utrzymywać kod.

  • Ułatwia zapewnienie, że Twój kod wykazuje ,,Najważniejsze wskazówki" dla języka Visual Basic.

Konwencje nazewnictwa

  • Dla informacji o zasadach nazywania zobacz temat Guidelines for Names.

  • Nie należy używać "Mój" lub "mój" jako część nazwy zmiennej.Praktyka ta tworzy omyłkowe obiekty My.

  • Nie musisz zmieniać nazwy obiektów w automatycznie wygenerowany kod, aby je dopasować do wytycznych.

Konwencje układu

  • Wstaw tabulatory jako spacje i użyj inteligentnego wcięcia z czterokrotnym wcięciem.

  • Użyj opcji Automatyczne formatowanie kodu, aby sformatować kod w edytorze kodu.Aby uzyskać więcej informacji, zobacz Opcje, edytor tekstów, Basic (Visual Basic).

  • Użyj tylko jednej instrukcji na wiersz.Nie używaj znaku separatora wierszy programu Visual Basic (:).

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

  • Użyj tylko jednej deklaracji na wiersz.

  • Jeśli funkcja Automatyczne formatowanie kodu nie formatuje wierszy kontynuacji automatycznie, ręcznie utwórz wcięcia wierszy kontynuacji na jeden tabulator.Jednak zawsze wyrównuj do lewej elementy 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ść komentarze w osobnym wierszu zamiast na końcu wiersza kodu.

  • Rozpocznij tekst komentarza wielką literą i zakończ go kropką.

  • Wstaw jedną spację między ogranicznik komentarza (') i tekst komentarza.

    ' Here is a comment.
    
  • Nie otaczaj komentarzy sformatowanymi blokami ani gwiazdkami.

Struktura programu

  • Podczas korzystania z metody Main, użyj domyślnego konstruktora dla nowych aplikacji konsoli oraz My dla argumentów wiersza poleceń.

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

Wytyczne dotyczące języka

Typ danych ciągu

  • Do łączenia ciągów użyj znaku handlowe „i” (&).

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

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

Obniżone delegaty w procedurach obsługi zdarzeń

Nie kwalifikuj jawnie argumentów (Obiekt i EventArgs) do obsługi zdarzeń.Jeśli nie używasz argumentów zdarzeń, które są przekazywane do zdarzenia (na przykład nadawcy jako obiektu, e jako EventArg), użyj swobodnych delegatów pomiń argumenty zdarzeń w kodzie:

Public Sub Form1_Load() Handles Form1.Load
End Sub

Typ danych bez znaku

  • Użyj Integer zamiast niepodpisanych typów, z wyjątkiem przypadków, gdy jest to konieczne.

Tablice

  • Użyj skróconej składni podczas inicjowania tablic w wierszu deklaracji.Na przykład użyj następującej składni.

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

    Nie używaj poniższej składni.

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

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

    Nie używaj poniższej składni:

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

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

    Nie używaj poniższej składni:

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

Użycie słowa kluczowego With

Wprowadzając szereg wywołań do jednego obiektu, należy rozważyć użycie słowa kluczowego With:

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

Użycie instrukcji Try...Catch i Using do obsługi wyjątków

Nie używać On Error Goto.

Użycie słowa kluczowego IsNot

Użyj słowa kluczowego IsNot zamiast Not...Is Nothing.

Nowe słowa kluczowe

  • Użyj krótkiego tworzenia wystąpienia.Na przykład użyj następującej składni:

    Dim employees As New List(Of String)
    

    Poprzedni wiersz jest równoważny następującemu wyrażeniu:

    Dim employees2 As List(Of String) = New List(Of String)
    
  • Użyj inicjatorów obiektów dla nowych obiektów, a nie konstruktora bez parametrów:

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

Obsługa zdarzeń

  • Użyj Handles a nie AddHandler:

    Private Sub ToolStripMenuItem1_Click() Handles ToolStripMenuItem1.Click
    End Sub
    
  • Należy użyć AddressOf i nie tworzyć wystąpienia pełnomocnika jawnie:

    Dim closeItem As New ToolStripMenuItem( 
        "Close", Nothing, AddressOf ToolStripMenuItem1_Click)
    Me.MainMenuStrip.Items.Add(closeItem)
    
  • Podczas definiowania zdarzenia można używać skróconej składni i zezwolić kompilatorowi na zdefiniowanie delegata:

    Public Event SampleEvent As EventHandler(Of SampleEventArgs)
    ' or 
    Public Event SampleEvent(ByVal source As Object, 
                              ByVal e As SampleEventArgs)
    
  • Nie weryfikuj, czy zdarzenie jest Nothing (null) przed wywołaniem metody RaiseEvent.RaiseEvent sprawdza, czy Nothing przed wywołaniem zzdarzenia.

Używanie udostępnionych elementów członkowskich

Wywołaj członków Shared przy użyciu nazwy klasy, ale nie ze zmiennej wystąpienia.

Używanie literałów XML

Literały XML upraszczają najbardziej typowe zadania, które można napotkać podczas pracy z XML (na przykład ładowanie, kwerendy i transformowanie).Podczas pracy z danymi XML należy przestrzegać następujących zasad:

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

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

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

  • Wyrażenia osadzone umożliwiają uwzględnienie wartości i tworzenie kodu XML na podstawie istniejących wartości, a nie przy użyciu wywołań interfejsu API, takich jak metoda Add:

    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
    

Zapytania LINQ

  • Użyj nazw opisowych dla zmiennych kwerendy:

    Dim seattleCustomers = From cust In customers 
                           Where cust.City = "Seattle"
    
  • Zapewnij nazwy elementów w zapytaniu, aby upewnić się, że nazwy właściwości anonimowych typów są kapitalizowane poprawnie przy użyciu obudowy Pascal:

    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 byłby niejednoznaczne.Na przykład jeśli zapytanie zwraca nazwę klienta i identyfikator zamówienia, zmień je zamiast pozostawiania 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 wnioskowania o typie w deklaracji zmiennych kwerendy i zmiennych zakresu:

    Dim customerList = From cust In customers
    
  • Wyrównaj klauzule zapytania pod instrukcją From:

    Dim newyorkCustomers = From cust In customers 
                           Where cust.City = "New York"  
                           Select cust.LastName, cust.CompanyName
    
  • Użycie klauzuli Where przed innymi klauzulami kwerend powoduje, że późniejsze klauzule kwerend działają na zestawie filtrowanych danych:

    Dim newyorkCustomers2 = From cust In customers 
                            Where cust.City = "New York" 
                            Order By cust.LastName
    
  • Klauzula Join umożliwia jawne zdefiniowanie operacji join w przeciwieństwie do klauzuli Where, która umożliwia niejawnie określenie operacji join:

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

Zobacz też

Inne zasoby

Wytyczne dotyczące bezpiecznego programowania