Bagikan melalui


Konvensi Pengodian 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 Panduan Penamaan .

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

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

Konvensi Tata Letak

  • Gunakan tab sebagai spasi, dan gunakan indentasi pintar dengan indentasi empat spasi.

  • Gunakan penataan kode yang rapi (memformat ulang) untuk memformat ulang kode Anda di editor kode. Untuk informasi selengkapnya, lihat Opsi, Editor Teks, Dasar (Visual Basic).

  • Gunakan 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.

  • Gunakan hanya satu deklarasi per baris.

  • Jika Penataan rapi (memformat ulang) kode tidak memformat baris kelanjutan secara otomatis, indentasikan baris kelanjutan secara manual dengan satu hentian tab. Namun, selalu ratakan item ke kiri dalam daftar.

    a As Integer,  
    b As Integer  
    
  • Tambahkan setidaknya satu baris kosong antara 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 kelilingi komentar dengan blok tanda bintang yang diformat.

Struktur Program

  • Saat Anda menggunakan metode Main, gunakan konstruksi bawaan untuk membuat 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

Tipe 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 StringBuilder objek .

    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 EventArgs), gunakan delegasi yang lebih longgar, dan abaikan argumen peristiwa dalam kode Anda:

Public Sub Form1_Load() Handles Form1.Load
End Sub

Tipe Data Tidak Ditandatangani

  • Gunakan Integer alih-alih tipe tak bertanda, 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 penanda 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"
    

Menggunakan Kata Kunci With

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 Try...Catch dan Pernyataan Using saat anda menggunakan Penanganan Pengecualian

Jangan gunakan On Error Goto.

Menggunakan 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 menginstansiasi delegasi secara eksplisit.

    Dim closeItem As New ToolStripMenuItem( 
        "Close", Nothing, AddressOf ToolStripMenuItem1_Click)
    Me.MainMenuStrip.Items.Add(closeItem)
    
  • Saat Anda menentukan peristiwa, gunakan sintaks pendek, 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 Nothing (null) event sebelum Anda memanggil metode RaiseEvent. RaiseEvent memeriksa Nothing sebelum memunculkan peristiwa.

Menggunakan Anggota Bersama

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

Menggunakan Literal XML

Literal 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 literal XML untuk membuat dokumen dan fragmen XML alih-alih memanggil API XML secara langsung.

  • Impor namespace XML di tingkat file atau proyek untuk memanfaatkan pengoptimalan performa untuk literal XML.

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

  • Gunakan ekspresi yang disematkan untuk menyertakan nilai dan untuk membuat XML dari nilai yang ada alih-alih menggunakan panggilan API seperti Add metode :

    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

  • Gunakan 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 jenis anonim dijadikan huruf besar dengan benar menggunakan kapitalisasi 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 inferensi jenis dalam deklarasi variabel kueri dan variabel rentang:

    Dim customerList = From cust In customers
    
  • Sesuaikan klausa kueri di bawah pernyataan From.

    Dim newyorkCustomers = From cust In customers 
                           Where cust.City = "New York" 
                           Select cust.LastName, cust.CompanyName
    
  • Gunakan Where klausa sebelum klausul kueri lain sehingga klausa kueri nanti beroperasi pada kumpulan data yang difilter:

    Dim newyorkCustomers2 = From cust In customers 
                            Where cust.City = "New York" 
                            Order By cust.LastName
    
  • Join Gunakan klausul untuk secara eksplisit menentukan operasi gabungan alih-alih menggunakan Where klausul 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