Definirea enumerarilor in VB.NET

1 comment -

Enumerarile ofera un mod avantajos de lucru cu multimi de constante sau asocierea valorilor constante cu denumiri de constante. Enumerarile sunt tratate ca tipuri de date si sunt utilizate pentru a crea multimi de constante.
Avantaje ale utilizarii enumerarilor:

  • reducerea erorilor de introducere a valorilor numerice in cod sursa;
  • schimbarea usoara a valorii constante in dezvoltari ulterioare;
  • mentenanta facila a codului sursa;
  • asigurarea fiabilitatii codului sursa in raport cu schimbari viitoare ale valorilor.

Enumerarile sunt definite standard in limbajul VB.NET sau declarate de catre dezvoltator.
Declararea unei enumerari presupune utilizarea specificatiilor Enum si End Enum introduse in zona de declaratii a unei clase de obiecte [...] sau modul [...]. O enumerare are o denumire, un tip asociat si o multime de campuri, fiecare fiind o constanta. Enumerarile nu pot avea valori reale in virgula mobila.
Constantele sunt declarate in enumerari. Primul camp din enumerare este initializat cu valoarea 0, iar urmatorul camp are valoarea celui precedent incrementata cu valoarea 1.

Public Enum Luni
    Ianuarie
    Februarie
    Martie
    Aprilie
    Mai
    Iunie
    Iulie
    August
    Septembrie
    Octombrie
    Noiembrie
    Decembrie
End Enum

In exemplul anterior, constanta denumita Ianuarie are valoarea 0, iar constanta denumita Decembrie are valoarea 11.
Campurile incluse intr-o enumerare pot avea valori asociate. De exemplu, in enumerarea urmatoare este definit campul LunaInvalida initializat cu o valoare intreaga negativa pentru a surprinde cazurile de eroare cu privire la luna calendaristica:

Public Enum Luni
    Ianuarie
    Februarie
    Martie
    Aprilie
    Mai
    Iunie
    Iulie
    August
    Septembrie
    Octombrie
    Noiembrie
    Decembrie
    LunaInvalida = -1
End Enum

Referirea unei constante inclusa intr-o enumerare se implementeaza astfel:

...
Dim x As Integer
x = Luni.Decembrie
MsgBox("ID luna: " & x)
...

, , , , , , , ,


  1. No comments yet.
(will not be published)