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 ]

Parça

Description

membername

Gerekli.Bu üyenin adı.

initializer

İsteğe Bağlı.Derleme sırasında değerlendirilir ve bu üyeye atanan ifade.

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

Enum

Const Deyimi (Visual Basic)

Dim Deyimi (Visual Basic)

Tür Dönüştürme İşlevleri (Visual Basic)

AscW

Kavramlar

Örtük ve Açık Dönüştürmeler (Visual Basic)

Sabitler ve Numaralandırmalar (Visual Basic)