Enum — Instrukcja (Visual Basic)
Deklaruje wyliczenie i definiuje wartości jego członków.
[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Enum enumerationname [ As datatype ]
memberlist
End Enum
Części
Część |
Opis |
||||||
attributelist |
Opcjonalne.Lista atrybutów, które stosuje się do tego wyliczenia.Należy ująć listy atrybutów w nawiasy ostre ("<"i">"). FlagsAttribute Atrybut wskazuje, że wartość wyliczenia instancji może zawierać wiele członkowie wyliczenia i że każdego członka reprezentuje pole bitowe wartości wyliczenia. |
||||||
accessmodifier |
Opcjonalne.Określa, jakiego można uzyskać dostęp do tego wyliczenia.Może być jedną z następujących czynności: Można określić ProtectedFriend aby umożliwić dostęp z kodu wewnątrz wyliczanie klasy, klasy pochodnej lub tego samego zestawu. |
||||||
Shadows |
Opcjonalne.Określa, że to wyliczenie redeclares i ukrywa element programowania o identycznej nazwie, lub zestaw elementów przeciążony, w klasie podstawowej.Można określić cienie tylko na wyliczenie, sama, a nie na któregokolwiek z członków. |
||||||
enumerationname |
Wymagane.Nazwa wyliczenia.Informacje o prawidłowych nazw, zobacz Zadeklarowane nazwy elementów (Visual Basic). |
||||||
datatype |
Opcjonalne.Typ danych wyliczanie i wszystkich jej członków. |
||||||
memberlist |
Wymagane.Lista stałych Członkowskich zostały zgłoszone w tej instrukcji.Wielu członków pojawiają się na poszczególne źródła wierszy kodu. Każdy member ma następującą składnię i części:[<attribute list>] member name [ = initializer ]
|
||||||
EndEnum |
Kończy Enum bloku. |
Uwagi
Jeśli zbiór wartości niezmiennymi okresami, logicznie powiązanych ze sobą, można zdefiniować je razem w wyliczenia.Zapewnia to znaczące nazwy do wyliczenia i jego członków, które są łatwiejsze do zapamiętania niż ich wartości.Członkowie wyliczenia można następnie używać w wielu miejscach, w kodzie.
Korzyści ze stosowania wyliczeń, obejmują:
Zmniejsza błędów spowodowanych transponujących lub błędne liczb.
Ułatwia zmienianie wartości w przyszłości.
Powoduje, że kod łatwiejsze do czytania, co oznacza, że istnieje mniejsze prawdopodobieństwo, że zostaną wprowadzone błędy.
Zapewnia zgodnooć.Jeśli używasz wyliczeń, kod jest mniej prawdopodobne, jeśli w przyszłości zmiany wprowadzane wartości odpowiadające nazwy składników.
Wyliczenie ma nazwę, typ danych oraz zestaw elementów członkowskich.Każdy składnik oznacza stałą.
Wyliczenie zadeklarowane na poziomie klasy, struktury, moduł lub interfejsu, poza jakąkolwiek procedurą jest Członkowskich wyliczania.Jest członkiem klasy, struktury, moduł lub interfejsu, który deklaruje go.
Wyliczenia Członkowskich jest możliwy z gdziekolwiek w obrębie klasy, struktury, moduł lub interfejsu.Kod poza klasą, strukturą lub moduł musi kwalifikować się nazwę wyliczenia Członkowskie nazwą tej klasy, struktury lub moduł.Można uniknąć potrzeby używania w pełni kwalifikowane nazwy przez dodanie przywóz instrukcji w pliku źródłowym.
Wyliczenie zadeklarowane na poziomie obszaru nazw, poza klasy, struktury, moduł lub interfejsu, jest członkiem obszaru nazw, w którym się pojawia.
Kontekście deklaracji dla wyliczenia musi być plik źródłowy, obszar nazw, klasy, struktury, moduł lub interfejsu i nie może być procedurę.Aby uzyskać więcej informacji, zobacz Kontekst deklaracji i domyślne poziomy dostępu (Visual Basic).
Można zastosować atrybutów do wyliczenia jako całości, ale nie do jej członków indywidualnie.Atrybut przyczynia się informacje z zestawu metadanych.
Typ danych
Enum Instrukcji można zadeklarować typu danych wyliczenia.Każdy członek ma typ danych wyliczenia.You can specify Byte, Integer, Long, SByte, Short, UInteger, ULong, or UShort.
Jeśli nie zostanie datatype wyliczania, każdy członek ma typ danych jej initializer.Jeśli określisz zarówno datatype i initializer, typ danych initializer musi być typu datatype.Jeśli ani datatype ani initializer jest obecny, typ danych wartości domyślne do Integer.
Inicjowanie członków
Enum Instrukcji może zainicjować zawartość wybranych członków w memberlist.Za pomocą initializer do dostarczania wyrażenie ma być przypisany do członka.
Jeśli nie zostanie initializer dla elementu członkowskiego języka Visual Basic inicjuje ją do zera (jeśli jest pierwszym member w memberlist), lub wartość większą o jeden niż bezpośrednio poprzedzających member.
Wyrażenie dostarczone w każdym initializer może być dowolną kombinacją literały, inne stałe, które są już zdefiniowane i członkowie wyliczenia, które są już zdefiniowane, łącznie z poprzednich członek tego wyliczenia.Za pomocą operatorów arytmetycznych i logiczne połączenie tych elementów.
Nie można używać zmiennych lub funkcji w initializer.Jednakże, takie jak można konwersji słowa kluczowe CByte i CShort.Można również użyć AscW rozmowy ze stałą String lub Char argument, ponieważ, który może zostać oceniony w czasie kompilacji.
Wyliczenia nie może mieć wartości zmiennoprzecinkowych.Jeśli członek jest przypisana wartość zmiennoprzecinkowa i Option Strict ustawiono na, wystąpi błąd kompilatora.Jeśli Option Strict jest wyłączony, wartość jest automatycznie konwertowany na Enum typu.
Jeśli wartość elementu członkowskiego przekracza dopuszczalny zakres podstawowy typ danych lub zainicjować jakiegokolwiek członka do maksymalnej wartości dopuszczalnej przez podstawowy typ danych, kompilator zgłosi błąd.
Modyfikatory
Klasy, struktury, moduł i domyślne wyliczenia Członkowskie interfejsu publicznego dostępu.Można dostosować ich poziomy dostępu z modyfikatorów dostępu.Obszar nazw Członkowskie wyliczenia domyślnie przyjaciel dostępu.Można dostosować ich poziomy dostępu do publicznych, ale nie do prywatnym ani chronionym.Aby uzyskać więcej informacji, zobacz Poziomy dostępu w Visual Basic.
Wszyscy członkowie wyliczenia mają dostęp publiczny i nie można używać dowolnego modyfikatorów dostępu na nich.Jeśli wyliczenie, sam ma bardziej ograniczony poziom dostępu, wyliczenia określony poziom dostępu ma pierwszeństwo.
Domyślnie wszystkie wyliczenia to typów i ich pól są stałymi.Dlatego Shared, Static, i ReadOnly nie można użyć słowa kluczowe, odmawiając wyliczenia lub jej członków.
Przypisywanie wielu wartości
Wyliczenia zazwyczaj reprezentują wartości wzajemnie się wykluczają.W tym FlagsAttribute atrybutu w Enum deklaracji, można zamiast tego przypisać wiele wartości do instancji wyliczenia.FlagsAttribute Atrybut określa, że wyliczenie traktowane jako pole bitowe, czyli zestaw flag.Nazywa się bitowe wyliczenia.
Jeżeli wyliczenie oświadczyć za pomocą FlagsAttribute atrybut, zalecane korzystanie z uprawnień 2, który jest, 1, 2, 4, 8, 16 i tak dalej, dla wartości.Zalecane jest również, że należy "None" nazwa członka, którego wartością jest 0.Dodatkowe wskazówki, zobacz FlagsAttribute i Enum.
Przykład
Poniższy przykład pokazuje, jak używać Enum instrukcji.Należy zauważyć, że członek jest określone jako EggSizeEnum.Medium, a nie jako 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
W poniższym przykładzie metoda jest poza Egg klasy.W związku z tym EggSizeEnum jest w pełni kwalifikowana jako 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
W poniższym przykładzie użyto Enum instrukcję, aby zdefiniować zestaw powiązanych nazwane wartości stałe.W tym wypadku wartości są kolory, można projektować formularze wprowadzania danych dla bazy danych.
Public Enum InterfaceColors
MistyRose = &HE1E4FF&
SlateGray = &H908070&
DodgerBlue = &HFF901E&
DeepSkyBlue = &HFFBF00&
SpringGreen = &H7FFF00&
ForestGreen = &H228B22&
Goldenrod = &H20A5DA&
Firebrick = &H2222B2&
End Enum
W poniższym przykładzie przedstawiono wartości, które zawierają liczby dodatnie i ujemne.
Enum SecurityLevel
IllegalEntry = -1
MinimumSecurity = 0
MaximumSecurity = 1
End Enum
W poniższym przykładzie As klauzuli jest używana do określenia datatype wyliczenia.
Public Enum MyEnum As Byte
Zero
One
Two
End Enum
Poniższy przykład pokazuje, jak używać wyliczania logiczną.Wiele wartości, można przypisać do wystąpienia wyliczania logiczną.Enum Zgłoszenie obejmuje FlagsAttribute atrybut, który wskazuje, że wyliczenia mogą być traktowane jako zestaw flag.
' 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
Poniższy przykład iterację wyliczenia.Używa GetNames metoda pobierania tablicę nazw składników z wyliczenia, i GetValues do pobrania tablicy wartości elementów członkowskich.
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
Zobacz też
Informacje
Const — Instrukcja (Visual Basic)
Dim — Instrukcja (Visual Basic)
Funkcje konwersji typu (Visual Basic)