Acara
17 Mar, 21 - 21 Mar, 10
Bergabunglah dengan seri meetup untuk membangun solusi AI yang dapat diskalakan berdasarkan kasus penggunaan dunia nyata dengan sesama pengembang dan pakar.
Daftar sekarangBrowser ini sudah tidak didukung.
Mutakhirkan ke Microsoft Edge untuk memanfaatkan fitur, pembaruan keamanan, dan dukungan teknis terkini.
Mendeklarasikan enumerasi dan menentukan nilai anggotanya.
[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Enum enumerationname [ As datatype ]
memberlist
End Enum
attributelist
Opsional. Daftar atribut yang berlaku untuk enumerasi ini. Anda harus menyertakan daftar atribut dalam tanda kurung sudut ("<
" dan ">
").
Atribut FlagsAttribute menunjukkan bahwa nilai instans enumerasi dapat mencakup beberapa anggota enumerasi, dan bahwa setiap anggota mewakili bidang bit dalam nilai enumerasi.
accessmodifier
Opsional. Menentukan kode apa yang dapat mengakses enumerasi ini. Bisa jadi salah satu dari yang berikut:
Shadows
Opsional. Tunjukkan bahwa enumerasi ini mendeklarasikan kembali dan menyembunyikan elemen pemrograman bernama identik, atau kumpulan elemen kelebihan beban, di kelas dasar. Anda hanya dapat menentukan Bayangan hanya pada enumerasi itu sendiri, bukan pada salah satu anggotanya.
enumerationname
Harus diisi. Nama enumerasi. Untuk informasi tentang nama yang valid, lihat Nama Elemen yang Dinyatakan.
datatype
Opsional. Jenis data enumerasi dan semua anggotanya.
memberlist
Harus diisi. Daftar konstanta anggota yang dideklarasikan dalam pernyataan ini. Beberapa anggota muncul di baris kode sumber individual.
Setiap member
memiliki sintaks dan bagian berikut: [<attribute list>] member name [ = initializer ]
Bagian | Deskripsi |
---|---|
membername |
Harus diisi. Nama anggota ini. |
initializer |
Opsional. Ekspresi yang dievaluasi pada waktu kompilasi dan ditetapkan ke anggota ini. |
End
Enum
Hentikan blok Enum
.
Jika Anda memiliki sekumpulan nilai yang tidak berubah yang terkait secara logis satu sama lain, Anda dapat menentukannya bersama-sama dalam enumerasi. Ini memberikan nama yang bermakna untuk enumerasi dan anggotanya, yang lebih mudah diingat daripada nilai-nilainya. Anda kemudian dapat menggunakan anggota enumerasi di banyak tempat dalam kode Anda.
Manfaat menggunakan enumerasi meliputi yang berikut ini:
Mengurangi kesalahan yang disebabkan oleh transposisi atau salah ketik angka.
Memudahkan untuk mengubah nilai di masa mendatang.
Membuat kode lebih mudah dibaca, yang berarti kecil kemungkinan kesalahan akan terjadi.
Memastikan kompatibilitas penerusan. Jika Anda menggunakan enumerasi, kode Anda kemungkinannya lebih kecil untuk gagal jika di masa mendatang seseorang mengubah nilai yang terkait dengan nama anggota.
Enumerasi memiliki nama, jenis data yang mendasar, dan sekumpulan anggota. Setiap anggota mewakili konstanta.
Enumerasi yang dideklarasikan pada tingkat kelas, struktur, modul, atau antarmuka, di luar prosedur apa pun, adalah enumerasi anggota. Ini adalah anggota kelas, struktur, modul, atau antarmuka yang mendeklarasikannya.
Enumerasi anggota dapat diakses dari mana saja dalam kelas, struktur, modul, atau antarmuka mereka. Kode di luar kelas, struktur, atau modul harus memenuhi syarat nama enumerasi anggota dengan nama kelas, struktur, atau modul tersebut. Anda dapat menghindari kebutuhan untuk menggunakan nama yang sepenuhnya memenuhi syarat dengan menambahkan pernyataan Impor ke file sumber.
Enumerasi yang dideklarasikan pada tingkat namespace, di luar kelas, struktur, modul, atau antarmuka apa pun, adalah anggota namespace tempatnya muncul.
Konteks deklarasi untuk enumerasi harus berupa file sumber, namespace, kelas, struktur, modul, atau antarmuka, dan tidak dapat menjadi prosedur. Untuk informasi selengkapnya, lihat Konteks Deklarasi dan Tingkat Akses Default.
Anda dapat menerapkan atribut ke enumerasi secara keseluruhan, tetapi tidak untuk anggotanya satu per satu. Atribut memberikan informasi ke metadata rakitan.
Pernyataan Enum
dapat mendeklarasikan jenis data enumerasil. Setiap anggota mengambil jenis data enumerasi. Anda dapat menentukan Byte
, Integer
, Long
, SByte
, Short
, UInteger
, ULong
, atau UShort
.
Jika Anda tidak menentukan datatype
untuk enumerasi, setiap anggota mengambil jenis data initializer
-nya. Jika Anda menentukan datatype
dan initializer
, jenis data initializer
harus dapat dikonversi ke datatype
. Jika datatype
atau initializer
tidak ada, jenis data default ke Integer
.
Pernyataan Enum
dapat menginisialisasi konten anggota yang dipilih di memberlist
. Anda menggunakan initializer
untuk menyediakan ekspresi yang akan ditetapkan ke anggota.
Jika Anda tidak menentukan initializer
untuk anggota, Visual Basic menginisialisasinya baik ke nol (jika itu adalah member
yang pertama di memberlist
), atau ke nilai yang lebih besar oleh salah satu dari yang segera mendahului member
.
Ekspresi yang disediakan di masing-masing initializer
dapat berupa kombinasi harfiah, konstanta lain yang sudah ditentukan, dan anggota enumerasi yang sudah ditentukan, termasuk anggota sebelumnya dari enumerasi ini. Anda dapat menggunakan operator aritmatika dan logis untuk menggabungkan elemen tersebut.
Anda tidak dapat menggunakan variabel atau fungsi di initializer
. Namun, Anda dapat menggunakan kata kunci konversi seperti CByte
dan CShort
. Anda juga dapat menggunakannya AscW
jika Anda menyebutnya dengan konstanta argumen String
atau Char
, karena itu dapat dievaluasi pada waktu kompilasi.
Enumerasi tidak boleh memiliki nilai titik kambang. Jika anggota diberi nilai titik-mengambang dan Option Strict
diatur ke aktif, kesalahan pengkompilasi terjadi. Jika Option Strict
tidak aktif, nilainya secara otomatis dikonversi ke jenis Enum
.
Jika nilai anggota melebihi rentang yang diizinkan untuk jenis data yang mendasar, atau jika Anda menginisialisasi anggota mana pun ke nilai maksimum yang diizinkan oleh jenis data yang mendasar, kompiler melaporkan kesalahan.
Enumerasi anggota kelas, struktur, modul, dan antarmuka default ke akses publik. Anda dapat menyesuaikan tingkat aksesnya dengan pengubah akses. Enumerasi anggota namespace default ke akses pertemanan. Anda dapat menyesuaikan tingkat aksesnya ke publik, tetapi tidak untuk privat atau terlindungi. Untuk informasi selengkapnya, lihat Tingkat akses di Visual Basic.
Semua anggota enumerasi memiliki akses publik, dan Anda tidak dapat menggunakan pengubah akses apa pun padanya. Namun, jika enumerasi itu sendiri memiliki tingkat akses yang lebih terbatas, tingkat akses enumerasi yang ditentukan lebih diutamakan.
Secara default, semua enumerasi adalah jenis dan bidangnya adalah konstanta. Oleh karena itu kata kunci Shared
, Static
, dan ReadOnly
tidak dapat digunakan saat mendeklarasikan enumerasi atau anggotanya.
Enumerasi biasanya mewakili nilai yang berbeda satu sama lain. Dengan menyertakan atribut FlagsAttribute dalam deklarasi Enum
, Anda dapat menetapkan beberapa nilai ke instans enumerasi. Atribut FlagsAttribute menentukan bahwa enumerasi diperlakukan sebagai bidang bit, yaitu sekumpulan bendera. Ini disebut enumerasi bitwise.
Saat Anda mendeklarasikan enumerasi menggunakan atribut FlagsAttribute, kami sarankan Anda menggunakan pangkat 2, yaitu, 1, 2, 4, 8, 16, dan sebagainya, untuk nilai. Kami juga menyarankan agar "Nihil" menjadi nama anggota yang nilainya adalah 0. Untuk panduan tambahan, lihat FlagsAttribute dan Enum.
Contoh berikut menunjukkan cara menggunakan pernyataan Enum
. Perhatikan bahwa anggota disebut sebagai EggSizeEnum.Medium
, dan bukan sebagai Medium
.
Public Class Egg
Enum EggSizeEnum
Jumbo
ExtraLarge
Large
Medium
Small
End Enum
Public Sub Poach()
Dim size As EggSizeEnum
size = EggSizeEnum.Medium
' Continue processing...
End Sub
End Class
Metode dalam contoh berikut berada di luar kelas Egg
. Oleh karena itu, EggSizeEnum
sepenuhnya memenuhi syarat sebagai Egg.EggSizeEnum
.
Public Sub Scramble(ByVal size As Egg.EggSizeEnum)
' Process for the three largest sizes.
' Throw an exception for any other size.
Select Case size
Case Egg.EggSizeEnum.Jumbo
' Process.
Case Egg.EggSizeEnum.ExtraLarge
' Process.
Case Egg.EggSizeEnum.Large
' Process.
Case Else
Throw New ApplicationException("size is invalid: " & size.ToString)
End Select
End Sub
Contoh berikut menggunakan pernyataanEnum
untuk menentukan sekumpulan nilai konstanta bernama terkait. Dalam hal ini, nilainya adalah warna yang mungkin Anda pilih untuk mendesain formulir entri data untuk database.
Public Enum InterfaceColors
MistyRose = &HE1E4FF&
SlateGray = &H908070&
DodgerBlue = &HFF901E&
DeepSkyBlue = &HFFBF00&
SpringGreen = &H7FFF00&
ForestGreen = &H228B22&
Goldenrod = &H20A5DA&
Firebrick = &H2222B2&
End Enum
Contoh berikut menunjukkan nilai yang menyertakan angka positif dan negatif.
Enum SecurityLevel
IllegalEntry = -1
MinimumSecurity = 0
MaximumSecurity = 1
End Enum
Dalam contoh berikut, klausa As
digunakan untuk menentukan datatype
dari enumerasi.
Public Enum MyEnum As Byte
Zero
One
Two
End Enum
Contoh berikut ini memperlihatkan cara menggunakan dalam enumerasi bitwise. Beberapa nilai dapat ditetapkan ke instans enumerasi bitwise. Deklarasi Enum
mencakup atribut FlagsAttribute, yang menunjukkan bahwa enumerasi dapat diperlakukan sebagai sekumpulan bendera.
' Apply the Flags attribute, which allows an instance
' of the enumeration to have multiple values.
<Flags()> Public Enum FilePermissions As Integer
None = 0
Create = 1
Read = 2
Update = 4
Delete = 8
End Enum
Public Sub ShowBitwiseEnum()
' Declare the non-exclusive enumeration object and
' set it to multiple values.
Dim perm As FilePermissions
perm = FilePermissions.Read Or FilePermissions.Update
' Show the values in the enumeration object.
Console.WriteLine(perm.ToString)
' Output: Read, Update
' Show the total integer value of all values
' in the enumeration object.
Console.WriteLine(CInt(perm))
' Output: 6
' Show whether the enumeration object contains
' the specified flag.
Console.WriteLine(perm.HasFlag(FilePermissions.Update))
' Output: True
End Sub
Contoh berikut mengulang melalui enumerasi. Ini menggunakan metode GetNames untuk mengambil array nama anggota dari enumerasi, dan GetValues untuk mengambil array nilai anggota.
Enum EggSizeEnum
Jumbo
ExtraLarge
Large
Medium
Small
End Enum
Public Sub Iterate()
Dim names = [Enum].GetNames(GetType(EggSizeEnum))
For Each name In names
Console.Write(name & " ")
Next
Console.WriteLine()
' Output: Jumbo ExtraLarge Large Medium Small
Dim values = [Enum].GetValues(GetType(EggSizeEnum))
For Each value In values
Console.Write(value & " ")
Next
Console.WriteLine()
' Output: 0 1 2 3 4
End Sub
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik:
Acara
17 Mar, 21 - 21 Mar, 10
Bergabunglah dengan seri meetup untuk membangun solusi AI yang dapat diskalakan berdasarkan kasus penggunaan dunia nyata dengan sesama pengembang dan pakar.
Daftar sekarang