Bagikan melalui


Konvensi Pengodean Visual Basic

Microsoft mengembangkan sampel dan dokumentasi yang mengikuti panduan dalam topik ini. Jika Anda mengikuti konvensi pengkodian yang sama, Anda mungkin mendapatkan manfaat berikut:

  • Kode Anda akan memiliki tampilan yang konsisten, sehingga pembaca dapat lebih fokus pada konten, bukan tata letak.

  • Pembaca memahami kode Anda lebih cepat karena mereka dapat membuat asumsi berdasarkan pengalaman sebelumnya.

  • Anda dapat menyalin, mengubah, dan memelihara kode dengan lebih mudah.

  • Anda membantu memastikan bahwa kode Anda menunjukkan "praktik terbaik" untuk Visual Basic.

Konvensi Penamaan

  • Untuk informasi tentang panduan penamaan, lihat topik Pedoman Penamaan.

  • Jangan gunakan "My" atau "my" sebagai bagian dari nama variabel. Praktik ini menciptakan kebingungan dengan objek My.

  • Anda tidak perlu mengubah nama objek dalam kode yang dibuat secara otomatis agar sesuai dengan pedoman.

Konvensi tata letak

  • Sisipkan tab sebagai spasi, dan gunakan inden pintar dengan inden empat spasi.

  • Gunakan Daftar cantik (memformat ulang) kode untuk memformat ulang kode Anda di editor kode. Untuk informasi selengkapnya, lihat Opsi, Editor Teks, C#, Pemformatan.

  • Tulis hanya satu pernyataan per baris. Jangan gunakan karakter pemisah garis Visual Basic (:).

  • Hindari menggunakan karakter kelanjutan baris eksplisit "_" untuk mendukung kelanjutan baris implisit di mana pun bahasa mengizinkannya.

  • Tulis hanya satu deklarasi per baris.

  • Jika Daftar cantik (memformat ulang) kode tidak memformat baris kelanjutan secara otomatis, baris kelanjutan inden manual satu perhentian tab. Namun, selalu rata kiri item dalam daftar.

    a As Integer,  
    b As Integer  
    
  • Tambahkan setidaknya satu baris kosong antara definisi metode dan definisi properti.

Konvensi komentar

  • Letakkan komentar di baris terpisah alih-alih di akhir baris kode.

  • Mulai teks komentar dengan huruf besar, dan akhiri teks komentar dengan titik.

  • Sisipkan satu spasi antara pemisah komentar (') dan teks komentar.

    ' Here is a comment.
    
  • Jangan mengelilingi komentar dengan blok tanda bintang yang diformat.

Struktur Program

  • Saat Anda menggunakan metode Main, gunakan konstruksi default untuk aplikasi konsol baru, dan gunakan My untuk argumen baris perintah.

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

Panduan bahasa

Jenis Data String

  • Gunakan interpolasi string untuk menggabungkan string pendek, seperti yang ditunjukkan dalam kode berikut.

    MsgBox($"hello{vbCrLf}goodbye")
    
  • Untuk menambahkan string dalam perulangan, gunakan objek StringBuilder.

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

Delegasi Yang Dilonggarkan di Penanganan Aktivitas

Jangan secara eksplisit memenuhi syarat argumen (Object dan EventArgs) ke penanganan aktivitas. Jika Anda tidak menggunakan argumen peristiwa yang diteruskan ke peristiwa (misalnya, sender As Object, ), e As EventArgsgunakan delegasi yang dilonggarkan, dan tinggalkan argumen peristiwa dalam kode Anda:

Public Sub Form1_Load() Handles Form1.Load
End Sub

Jenis data tanpa tanda tangan

  • Gunakan Integer daripada jenis yang tidak ditandatangani, kecuali jika diperlukan.

Larik

  • Gunakan sintaks pendek saat Anda menginisialisasi array pada baris deklarasi. Misalnya, gunakan sintaks berikut.

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

    Jangan gunakan sintaks berikut.

    Dim letters2() As String = New String() {"a", "b", "c"}
    
  • Letakkan pendesain array pada jenis, bukan pada variabel. Misalnya, gunakan sintaks berikut:

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

    Jangan gunakan sintaks berikut:

    Dim letters3() As String = {"a", "b", "c"}
    
  • Gunakan sintaks { } saat Anda mendeklarasikan dan menginisialisasi array dari jenis data dasar. Misalnya, gunakan sintaks berikut:

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

    Jangan gunakan sintaks berikut:

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

Gunakan Dengan Kata Kunci

Saat Anda melakukan serangkaian panggilan ke satu objek, pertimbangkan untuk menggunakan kata kunci With:

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

Gunakan Pernyataan Coba...Tangkap dan Gunakan saat Anda menggunakan Penanganan Pengecualian

Jangan gunakan On Error Goto.

Gunakan Kata Kunci IsNot

Gunakan ... IsNot Nothing alih-alih Not ... Is Nothing.

Kata Kunci Baru

  • Gunakan instansiasi singkat. Misalnya, gunakan sintaks berikut:

    Dim employees As New List(Of String)
    

    Baris sebelumnya setara dengan ini:

    Dim employees2 As List(Of String) = New List(Of String)
    
  • Gunakan penginisialisasi objek untuk objek baru alih-alih konstruktor tanpa parameter:

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

Penanganan peristiwa

  • Gunakan Handles daripada AddHandler:

    Private Sub ToolStripMenuItem1_Click() Handles ToolStripMenuItem1.Click
    End Sub
    
  • Gunakan AddressOf, dan jangan membuat instans delegasi secara eksplisit:

    Dim closeItem As New ToolStripMenuItem( 
        "Close", Nothing, AddressOf ToolStripMenuItem1_Click)
    Me.MainMenuStrip.Items.Add(closeItem)
    
  • Saat Anda menentukan peristiwa, gunakan sintaks singkat, dan biarkan pengkompilasi menentukan delegasi:

    Public Event SampleEvent As EventHandler(Of SampleEventArgs)
    ' or
    Public Event SampleEvent(ByVal source As Object, 
                              ByVal e As SampleEventArgs)
    
  • Jangan verifikasi apakah suatu peristiwa adalah Nothing ( null) sebelum Anda memanggil metode RaiseEvent. RaiseEvent memeriksa Nothing sebelum menaikkan peristiwa.

Mengakses anggota bersama

Panggil anggota Shared dengan menggunakan nama kelas, bukan dari variabel instans.

Gunakan Harfiah XML

Harfiah XML menyederhanakan tugas paling umum yang Anda temui saat bekerja dengan XML (misalnya, memuat, mengkueri, dan mengubah). Saat Anda mengembangkan dengan XML, ikuti panduan berikut:

  • Gunakan harfiah XML untuk membuat dokumen dan fragmen XML alih-alih memanggil API XML secara langsung.

  • Impor namespace XML pada tingkat file atau proyek untuk memanfaatkan pengoptimalan performa untuk harfiah XML.

  • Gunakan properti sumbu XML untuk mengakses elemen dan atribut dalam dokumen XML.

  • Gunakan ekspresi yang disematkan untuk menyertakan nilai dan membuat XML dari nilai yang ada alih-alih menggunakan panggilan API seperti metode 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
    

Kueri LINQ

  • Menggunakan nama yang bermakna untuk variabel kueri:

    Dim seattleCustomers = From cust In customers 
                           Where cust.City = "Seattle"
    
  • Berikan nama untuk elemen dalam kueri untuk memastikan bahwa nama properti dari jenis anonim menggunakan huruf besar dengan benar menggunakan huruf besar Pascal:

    Dim customerOrders = From customer In customers 
                         Join order In orders 
                           On customer.CustomerID Equals order.CustomerID 
                         Select Customer = customer, Order = order
    
  • Ganti nama properti ketika nama properti dalam hasil akan bersifat ambigu. Misalnya, jika kueri Anda mengembalikan nama pelanggan dan ID pesanan, ganti namanya alih-alih meninggalkannya sebagai Name dan ID dalam hasilnya:

    Dim customerOrders2 = From cust In customers 
                          Join ord In orders
                            On cust.CustomerID Equals ord.CustomerID 
                          Select CustomerName = cust.Name, 
                                 OrderID = ord.ID
    
  • Gunakan pengetikan implisit dalam deklarasi variabel kueri dan variabel rentang:

    Dim customerList = From cust In customers
    
  • Ratakan klausul kueri di bawah pernyataan From:

    Dim newyorkCustomers = From cust In customers 
                           Where cust.City = "New York" 
                           Select cust.LastName, cust.CompanyName
    
  • Gunakan klausul Where sebelum klausul kueri lainnya untuk memastikan bahwa klausul kueri nanti beroperasi pada kumpulan data terfilter yang dikurangi:

    Dim newyorkCustomers2 = From cust In customers 
                            Where cust.City = "New York" 
                            Order By cust.LastName
    
  • Gunakan klausul Join untuk secara eksplisit menentukan operasi gabungan alih-alih menggunakan klausul Where untuk secara implisit menentukan operasi gabungan:

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

Lihat juga