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 gunakanMy
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 EventArgs
gunakan 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
daripadaAddHandler
: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 metodeRaiseEvent
.RaiseEvent
memeriksaNothing
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
danID
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 klausulWhere
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