Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Topik ini menjelaskan atribut yang paling umum digunakan dalam program Visual Basic.
Atribut Global
Sebagian besar atribut diterapkan ke elemen bahasa tertentu seperti kelas atau metode; namun, beberapa atribut bersifat global—berlaku untuk seluruh perakitan atau modul. Misalnya, AssemblyVersionAttribute atribut dapat digunakan untuk menyematkan informasi versi ke dalam rakitan, seperti ini:
<Assembly: AssemblyVersion("1.0.0.0")>
Atribut global muncul dalam kode sumber setelah pernyataan tingkat atas Imports
dan sebelum deklarasi jenis, modul, atau namespace apa pun. Atribut global dapat muncul dalam beberapa file sumber, tetapi file harus dikompilasi dalam satu pass kompilasi. Untuk proyek Visual Basic, atribut global umumnya dimasukkan ke dalam file AssemblyInfo.vb (file dibuat secara otomatis saat Anda membuat proyek di Visual Studio).
Atribut rakitan adalah nilai-nilai yang menyediakan informasi tentang rakitan. Mereka termasuk dalam kategori berikut:
Atribut identitas perakitan
Atribut informasi
Atribut manifes perakitan
Atribut Identitas Rakitan
Tiga atribut (dengan nama yang kuat, jika berlaku) menentukan identitas sebuah assemblai: nama, versi, dan kultur. Atribut ini membentuk nama lengkap assembly dan diperlukan saat Anda mereferensikannya dalam kode. Anda dapat mengatur versi dan kultur assembly menggunakan atribut. Namun, nilai nama diatur oleh pengkompilasi, IDE Visual Studio di Kotak Dialog Informasi Perakitan, atau Assembly Linker (Al.exe) saat perakitan dibuat, berdasarkan file yang berisi manifes perakitan. Atribut AssemblyFlagsAttribute menentukan apakah beberapa salinan rakitan dapat berdampingan.
Tabel berikut menunjukkan atribut identitas.
Karakteristik | Tujuan |
---|---|
AssemblyName | Secara lengkap menjelaskan identitas rakitan. |
AssemblyVersionAttribute | Menentukan versi rakitan. |
AssemblyCultureAttribute | Menentukan budaya mana yang didukung rakitan. |
AssemblyFlagsAttribute | Menentukan apakah rakitan mendukung eksekusi berdampingan pada komputer yang sama, dalam proses yang sama, atau di domain aplikasi yang sama. |
Atribut Informatif
Anda dapat menggunakan atribut informatif untuk memberikan informasi tambahan tentang perusahaan atau produk untuk perakitan. Tabel berikut menunjukkan atribut informasi yang ditentukan dalam ruang nama System.Reflection.
Karakteristik | Tujuan |
---|---|
AssemblyProductAttribute | Menentukan atribut kustom yang menentukan nama produk untuk manifes perakitan. |
AssemblyTrademarkAttribute | Menentukan atribut kustom yang mengidentifikasi merek dagang untuk suatu manifes perakitan. |
AssemblyInformationalVersionAttribute | Menentukan atribut kustom yang menentukan versi informasi untuk manifes perakitan. |
AssemblyCompanyAttribute | Menentukan atribut kustom yang menentukan nama perusahaan untuk manifes perakitan. |
AssemblyCopyrightAttribute | Menentukan atribut kustom yang menentukan hak cipta untuk manifes perakitan. |
AssemblyFileVersionAttribute | Menginstruksikan pengkompilasi untuk menggunakan nomor versi tertentu untuk sumber daya versi file Win32. |
CLSCompliantAttribute | Menunjukkan apakah rakitan mematuhi Spesifikasi Bahasa Umum (CLS). |
Atribut Manifes Perakitan
Anda dapat menggunakan atribut pada manifes perakitan untuk menyampaikan informasi di dalam manifes perakitan. Ini termasuk judul, deskripsi, alias default, dan konfigurasi. Tabel berikut menunjukkan atribut manifes perakitan yang ditentukan dalam System.Reflection namespace.
Karakteristik | Tujuan |
---|---|
AssemblyTitleAttribute | Menentukan atribut kustom yang menentukan judul rakitan untuk manifes perakitan. |
AssemblyDescriptionAttribute | Menentukan atribut kustom yang menentukan deskripsi perakitan untuk manifes perakitan. |
AssemblyConfigurationAttribute | Menentukan atribut kustom yang menentukan konfigurasi rakitan (seperti ritel atau debug) untuk manifes perakitan. |
AssemblyDefaultAliasAttribute | Mendefinisikan alias default yang ramah untuk manifes perakitan |
Atribut Usang
Atribut Obsolete
menandai entitas program sebagai entitas yang tidak lagi direkomendasikan untuk digunakan. Setiap penggunaan entitas yang ditandai usang kemudian akan menghasilkan peringatan atau kesalahan, tergantung pada bagaimana atribut dikonfigurasi. Contohnya:
<System.Obsolete("use class B")>
Class A
Sub Method()
End Sub
End Class
Class B
<System.Obsolete("use NewMethod", True)>
Sub OldMethod()
End Sub
Sub NewMethod()
End Sub
End Class
Dalam contoh Obsolete
ini atribut diterapkan ke kelas A
dan ke metode B.OldMethod
. Karena argumen kedua dari konstruktor atribut yang diterapkan pada B.OldMethod
diatur ke true
, metode ini akan menyebabkan kesalahan pengompilasi, sedangkan menggunakan kelas A
hanya menghasilkan peringatan. Namun, memanggil B.NewMethod
tidak menghasilkan peringatan atau kesalahan.
String yang disediakan sebagai argumen pertama untuk konstruktor atribut akan ditampilkan sebagai bagian dari peringatan atau kesalahan. Misalnya, saat Anda menggunakannya dengan definisi sebelumnya, kode berikut menghasilkan dua peringatan dan satu kesalahan:
' Generates 2 warnings:
' Dim a As New A
' Generate no errors or warnings:
Dim b As New B
b.NewMethod()
' Generates an error, terminating compilation:
' b.OldMethod()
Dua peringatan untuk kelas A
dihasilkan: satu untuk deklarasi referensi kelas, dan satu untuk konstruktor kelas.
Atribut Obsolete
dapat digunakan tanpa argumen, tetapi termasuk penjelasan mengapa item kedaluwarsa dan apa yang harus digunakan sebagai gantinya direkomendasikan.
Atribut Obsolete
adalah atribut penggunaan tunggal dan dapat diterapkan ke entitas apa pun yang memungkinkan atribut.
Obsolete
adalah alias untuk ObsoleteAttribute.
Atribut Bersyarat
Atribut Conditional
membuat eksekusi metode bergantung pada pengidentifikasi prapemrosesan. Atribut Conditional
adalah alias untuk ConditionalAttribute, dan dapat diterapkan ke metode atau kelas atribut.
Dalam contoh ini, Conditional
diterapkan ke metode untuk mengaktifkan atau menonaktifkan tampilan informasi diagnostik khusus program:
#Const TRACE_ON = True
Imports System.Diagnostics
Module TestConditionalAttribute
Public Class Trace
<Conditional("TRACE_ON")>
Public Shared Sub Msg(ByVal msg As String)
Console.WriteLine(msg)
End Sub
End Class
Sub Main()
Trace.Msg("Now in Main...")
Console.WriteLine("Done.")
End Sub
End Module
TRACE_ON
Jika pengidentifikasi tidak ditentukan, tidak ada output jejak yang akan ditampilkan.
Atribut Conditional
sering digunakan dengan DEBUG
pengidentifikasi untuk mengaktifkan fitur pelacakan dan pengelogan untuk build debug tetapi tidak dalam build rilis, seperti ini:
<Conditional("DEBUG")>
Shared Sub DebugMethod()
End Sub
Ketika metode yang ditandai sebagai bersyariah dipanggil, ada atau tidaknya simbol pra-pemrosesan yang ditentukan menentukan apakah panggilan disertakan atau dihilangkan. Jika simbol ditentukan, panggilan disertakan; jika tidak, panggilan dihilangkan. Menggunakan Conditional
adalah alternatif yang lebih bersih, lebih elegan, dan kurang rawan kesalahan untuk merangkum metode di dalam #if…#endif
blok, seperti ini:
#If DEBUG Then
Sub ConditionalMethod()
End Sub
#End If
Metode bersyarat harus merupakan metode dalam deklarasi kelas atau struktur dan tidak boleh memiliki nilai pengembalian.
Menggunakan Beberapa Pengidentifikasi
Jika metode memiliki beberapa Conditional
atribut, panggilan ke metode disertakan jika setidaknya salah satu simbol kondisional didefinisikan (dengan kata lain, simbol secara logis ditautkan bersama-sama dengan menggunakan operator OR). Dalam contoh ini, kehadiran salah satu A
atau B
akan menghasilkan panggilan metode:
<Conditional("A"), Conditional("B")>
Shared Sub DoIfAorB()
End Sub
Untuk mencapai efek menautkan simbol secara logis dengan menggunakan operator AND, Anda dapat menentukan metode bersyarat berantai. Misalnya, metode kedua di bawah ini hanya akan dijalankan jika keduanya A
dan B
didefinisikan:
<Conditional("A")>
Shared Sub DoIfA()
DoIfAandB()
End Sub
<Conditional("B")>
Shared Sub DoIfAandB()
' Code to execute when both A and B are defined...
End Sub
Menggunakan Kondisional dengan Kelas Atribut
Atribut Conditional
juga dapat diterapkan ke definisi kelas atribut. Dalam contoh ini, atribut Documentation
kustom hanya akan menambahkan informasi ke metadata jika DEBUG ditentukan.
<Conditional("DEBUG")>
Public Class Documentation
Inherits System.Attribute
Private text As String
Sub New(ByVal doc_text As String)
text = doc_text
End Sub
End Class
Class SampleClass
' This attribute will only be included if DEBUG is defined.
<Documentation("This method displays an integer.")>
Shared Sub DoWork(ByVal i As Integer)
System.Console.WriteLine(i)
End Sub
End Class
Atribut Informasi Penelepon
Dengan menggunakan atribut Informasi Pemanggil, Anda dapat memperoleh informasi tentang pemanggil suatu metode. Anda dapat memperoleh jalur file kode sumber, nomor baris dalam kode sumber, dan nama anggota pemanggil.
Untuk mendapatkan informasi pemanggil anggota, Anda menggunakan atribut yang diterapkan ke parameter opsional. Setiap parameter opsional menentukan nilai default. Tabel berikut mencantumkan atribut Info Penelepon yang ditentukan di System.Runtime.CompilerServices namespace:
Karakteristik | Deskripsi | Tipe |
---|---|---|
CallerFilePathAttribute | Jalur lengkap file sumber yang berisi pemanggil. Ini adalah jalur pada waktu kompilasi. | String |
CallerLineNumberAttribute | Nomor baris dalam file sumber tempat metode dipanggil. | Integer |
CallerMemberNameAttribute | Nama metode atau nama properti pemanggil. Untuk informasi selengkapnya, lihat Informasi Penelepon (Visual Basic). | String |
CallerArgumentExpressionAttribute | Ekspresi yang digunakan oleh pemanggil untuk argumen. Untuk informasi selengkapnya, lihat Informasi Penelepon (Visual Basic). | String |
Untuk informasi selengkapnya tentang atribut Info Penelepon, lihat Informasi Penelepon (Visual Basic).
Atribut Visual Basic
Tabel berikut mencantumkan atribut yang khusus untuk Visual Basic.
Karakteristik | Tujuan |
---|---|
ComClassAttribute | Menunjukkan kepada pengkompilasi bahwa kelas harus diekspos sebagai objek COM. |
HideModuleNameAttribute | Memungkinkan anggota modul diakses hanya menggunakan kualifikasi yang diperlukan untuk modul. |
VBFixedStringAttribute | Menentukan ukuran string panjang tetap dalam struktur untuk digunakan dengan fungsi input dan output file. |
VBFixedArrayAttribute | Menentukan ukuran array tetap dalam struktur untuk digunakan dengan fungsi input dan output file. |
COMClassAttribute
Gunakan COMClassAttribute
untuk menyederhanakan proses pembuatan komponen COM dari Visual Basic. Objek COM sangat berbeda dari rakitan .NET Framework, dan tanpa COMClassAttribute
, Anda perlu mengikuti sejumlah langkah untuk menghasilkan objek COM dari Visual Basic. Untuk kelas yang ditandai dengan COMClassAttribute
, pengkompilasi melakukan banyak langkah ini secara otomatis.
HideModuleNameAttribute
Gunakan HideModuleNameAttribute
untuk memungkinkan anggota modul diakses hanya dengan menggunakan kualifikasi yang diperlukan untuk modul.
VBFixedStringAttribute
Gunakan VBFixedStringAttribute
untuk memaksa Visual Basic membuat string panjang tetap. String memiliki panjang variabel secara default, dan atribut ini berguna saat menyimpan string ke file. Kode berikut menunjukkan hal ini:
Structure Worker
' The runtime uses VBFixedString to determine
' if the field should be written out as a fixed size.
<VBFixedString(10)> Public LastName As String
<VBFixedString(7)> Public Title As String
<VBFixedString(2)> Public Rank As String
End Structure
VBFixedArrayAttribute
Gunakan VBFixedArrayAttribute
untuk mendeklarasikan array yang berukuran tetap. Seperti string Visual Basic, array memiliki panjang variabel secara default. Atribut ini berguna saat membuat serialisasi atau menulis data ke file.