Enum Deyimi (Visual Basic)
Bir numaralandýrma bildirir ve üyelerin değerlerini tanımlar.
[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Enum enumerationname [ As datatype ]
memberlist
End Enum
Bölümleri
Parça |
Description |
||||||
attributelist |
İsteğe Bağlı.Bu numaralandırma Uygula öznitelikler listesi.İçine almalısınız öznitelik listesi köşeli parantez içinde ("<"ve">"). FlagsAttribute Özniteliği belirtir bir örneğini numaralandırma değeri birden çok numaralandırma üyeleri içerebilir ve her üyenin bir bit alanı numaralandırma değeri temsil eder. |
||||||
accessmodifier |
İsteğe Bağlı.Bu numaralandırma hangi kod erişebileceklerini belirtir.Aşağıdakilerden biri olabilir: Belirtebileceğiniz ProtectedFriend numaralandýrmanýn sınıfı, türetilmiş bir sınıf veya aynı derlemenin içindeki kod erişime izin verecek şekilde. |
||||||
Shadows |
İsteğe Bağlı.Bu numaralandırma redeclares ve aynı adlı programlama öğesi veya bir taban sınıftaki aşırı yüklü öğeleri kümesi gizler belirtir.Belirtebileceğiniz Gölge numaralandırma yalnızca üzerinde değil, herhangi bir grubun üyeleri. |
||||||
enumerationname |
Gerekli.Numaralandırma adı.Geçerli adlar hakkında daha fazla bilgi için bkz: Bildirilen Öğe Adları (Visual Basic). |
||||||
datatype |
İsteğe Bağlı.Numaralandırma ve tüm üyeler veri türü. |
||||||
memberlist |
Gerekli.Bu ifadede bildirilen üye sabitleri listesi.Birden çok üye tek tek kaynak kod satırlarında görüntülenir. Her member aşağıdaki sözdizimi ve bölümleri vardır:[<attribute list>] member name [ = initializer ]
|
||||||
EndEnum |
Sona Enum blok. |
Notlar
Birbirlerine mantıksal olarak ilişkili değişmeyen değerler varsa, bunları bir sıralama içinde birlikte tanımlayabilirsiniz.Bu numaralandırma ve değerlerine kolay kendi üyeleri için anlamlı adlar sağlar.Numaralandırma üyeleri daha sonra kodunuzda birçok yerde kullanabilirsiniz.
Numaralandırmaları kullanmanın yararları şunlardır:
Sırasını değiştirme veya numaraları yanlış yazmanız kaynaklanan hataları azaltır.
Gelecekteki değerleri değiştirmek kolaylaştırır.
Hataları sunulmasının olasılığını yani kodunu okumak daha kolay hale getirir.
İleriye dönük uyumluluğu sağlar.Numaralandırma kullanmak, kodunuzu gelecekte birine üye adlarını karşılık gelen değerleri değişirse hata daha düşüktür.
Bir numaralandırma üyeleri kümesi adını ve temel bir veri türü vardır.Her üye sabit temsil eder.
Sınıf, yapı, modül veya herhangi bir yordam dışında arabirimi düzeyinde bildirilen bir numaralandırmadır bir üye numaralandırma.Sınıf, yapı, modül veya onu arabirimi bir üyesidir.
Üye numaralandırma her yerde kendi sınıf, yapı, modül veya arabirim içinde erişilebilir.Kod sınıf dışında yapısı veya modül üye numaralandýrmanýn Bu sınıf, yapı veya modül adıyla niteleyin gerekir.Tam adları ekleyerek gerek önleyebilirsiniz bir alır kaynak dosyadaki ifadesi.
Sınıf, yapı, modül veya arabirim dışında ad alanı düzeyinde bildirilen bir numaralandırma göründüğü ad alanı üyesidir.
Bildiriminin içerik için bir numaralandırma kaynak dosyası, ad, sınıf, yapı, modül veya arabirim olmalıdır ve bir yordamı olamaz.Daha fazla bilgi için bkz. Bildirim Bağlamları ve Varsayılan Erişim Düzeyleri (Visual Basic).
Öznitelikler bir bütün olarak numaralandırma, ancak üyeleri ayrı ayrı uygulayabilirsiniz.Bir öznitelik birleştirme meta bilgileri katkıda bulunmaktadır.
Veri Türü
Enum Deyimi numaralandýrma veri türü bildirmek.Her üyenin numaralandýrmanýn veri türü alır.You can specify Byte, Integer, Long, SByte, Short, UInteger, ULong, or UShort.
Belirtmezseniz, datatype numaralandırma için her üye veri türünü alır, initializer.Her ikisini de belirlerseniz, datatype ve initializer, veri türü initializer için dönüştürülebilir olmalıdır datatype.Hiçbiri, datatype ne initializer varsa, varsayılan veri türü Integer.
Üyeler başlatılıyor
Enum Deyimi seçili üyeleri içeriğini başlatmak memberlist.Kullandığınız initializer üye Atanacak ifade vermesini.
Belirtmezseniz, initializer bir üye için Visual Basic onu ya da sıfır başlatır (ilk ise member , memberlist), veya büyük bir tek adresinden hemen öncesindeki member.
Sağlanan her ifade initializer değişmezleri, önceden tanımlanmış diğer sabitler ve zaten, önceki bu numaralandırma üyesi de dahil olmak üzere tanımlanan numaralandırma üyeleri herhangi bir birleşimi olabilir.Bu tür öğeleri birleştirmek için aritmetik ve mantıksal işleçleri kullanabilirsiniz.
Değişkenleri veya işlevleri kullanamazsınız initializer.Ancak, dönüştürme anahtar sözcükler gibi kullanabileceğiniz CByte ve CShort.Ayrıca AscW sabiti ile çağırırsanız String veya Char derleme zamanında değerlendirilebilir bu yana bağımsız.
Numaralandırma, kayan nokta değeri olamaz.Üye kayan nokta değeri atanmışsa ve Option Strict , derleyici bir hata oluşur ayarlanır.Option Strict Kapalıysa, değer için dönüştürülmüş otomatik olarak Enum türü.
Temel veri türü için izin verilen aralığın bir üyenin değeri aşarsa veya herhangi bir üye için temel veri türü tarafından izin verilen en büyük değer başlatmak, derleyici bir hata bildirir.
Değiştiriciler
Sınıf, yapı, modül ve arabirimi üye listeleme varsayılan genel erişim için.Erişim değiştiricileri ile kullanıcıların erişim düzeylerini ayarlayabilirsiniz.Üye listeleme varsayılan ad alanı için arkadaşının.Ortak, ancak özel veya korumalı erişim düzeylerine ayarlayabilirsiniz.Daha fazla bilgi için bkz. Visual Basic'de Erişim Düzeyleri.
Tüm numaralandırma üyeleri ortak erişim ve, herhangi bir erişim değiştiricileri kullanamazsınız.Numaralandırma daha kısıtlı erişim düzeyi varsa, ancak belirtilen numaralandırma erişim düzeyini önceliklidir.
Varsayılan olarak, tüm numaralandırmaları türleridir ve kendi alanlarının sabittir.Bu nedenle Shared, Static, ve ReadOnly bir numaralandırma veya üyelerine bildirirken anahtar sözcükler kullanılamaz.
Birden çok değer atama
Numaralandırmalar genelde dışlayan değerleri temsil eder.Dahil olmak üzere tarafından FlagsAttribute , öznitelik Enum bildirimi, bunun yerine atayabilirsiniz birden çok değer numaralandırması örneği.FlagsAttribute Özniteliği, numaralandırma, bayrakları kümesi bir bit alanı olarak nitelenmesini belirtir.Bunlar adlı bit numaralandırma.
Ne zaman, bildirdiğiniz bir numaralandırma kullanarak FlagsAttribute özniteliği, öneririz, 2, 1, 2, 4, 8, 16 ve benzeri kuvvetleri değerlerini kullanın.Ayrıca, "None" değeri 0 olan bir üyenin adı olmasını öneririz.Ek yönergeler için bkz: FlagsAttribute ve Enum.
Örnek
Aşağıdaki örnek, nasıl kullanılacağını gösterir Enum ifadesi.Üye olarak başvurulan bir Not EggSizeEnum.Medium, değil de, 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
Aşağıdaki örnekte dışında yöntemdir Egg sınıfı.Bu nedenle, EggSizeEnum tam olarak ise 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
Aşağıdaki örnek Enum ilgili bir dizi tanımlamak için ifade adlı sabit değerler.Bu durumda, değerleri bir veritabanı için veri girişi formları tasarlamak isteyebilirsiniz renklerdir.
Public Enum InterfaceColors
MistyRose = &HE1E4FF&
SlateGray = &H908070&
DodgerBlue = &HFF901E&
DeepSkyBlue = &HFFBF00&
SpringGreen = &H7FFF00&
ForestGreen = &H228B22&
Goldenrod = &H20A5DA&
Firebrick = &H2222B2&
End Enum
Aşağıdaki örnek, pozitif ve negatif sayılar içeren değerleri gösterir.
Enum SecurityLevel
IllegalEntry = -1
MinimumSecurity = 0
MaximumSecurity = 1
End Enum
Aşağıdaki örnekte, bir As belirtmek için yan tümcesinde kullanılan datatype , bir numaralandırma.
Public Enum MyEnum As Byte
Zero
One
Two
End Enum
Aşağıdaki örnek, bitwise numaralandırma kullanmak gösterilmiştir.Bitsel numaralandırma örneğine birden çok değere atanabilir.Enum Bildirimi içeren FlagsAttribute gösterir numaralandırma bayrakları kümesi olarak değerlendirilebilen özniteliği.
' 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
Aşağıdaki örnek bir numaralandırma sırayla dolaşır.Kullandığı GetNames numaralandırmasından üye adlarının dizisini almak için yöntem ve GetValues bir dizi üyesi değerleri almak için.
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
Ayrıca bkz.
Başvuru
Tür Dönüştürme İşlevleri (Visual Basic)