Enumeraatorid
Enumeraatorid on konstantide kogumikud, mis koondavad endasse mõne omaduse võimalikud numbrilised väärtused ja nende nimetused. Oma olemuselt on enumeraator andmetüüp. Enumeraatorid aitavad meil kirjutada loetavamat koodi ning osaliselt vältida ka maagilisi konstante.
Vaatame näitena makseviiside enumeraatorit.
public enum PaymentMethods
{
CreditCard,
SnailMail,
MonthlyBilling,
Paypal
}
Antud juhul antakse numbrilised väärtused enumeraatori elementidele automaatselt sellises järjestuses nagu nad on defineeritud:
- CreditCard = 0
- SnailMail = 1
- MonthlyBilling = 3
- Paypal = 4
Hea praktika on anda koos nimetustega alati ka numbrilised väärtused, sest sellisel juhul saame me muret tundmata muuta elementide järjekorda. Lisaks vähendame võimalust, et mõni vähem kogenud kolleeg muudab elementide järjestust olles mitteteadlik tagajärgedest.
public enum PaymentMethods
{
CreditCard = 0,
SnailMail = 1,
MonthlyBilling = 2,
Paypal = 4
}
Elementide numbrilised väärtused ei pea tingimata minema järjest.
public enum PaymentMethods
{
CreditCard = 4,
SnailMail = 16,
MonthlyBilling = 8,
Paypal = 2
}
Enumeraator klassi omadusena
Vaatame nüüd näidet enumeraatori kasutamisest.
public enum PaymentMethods
{
CreditCard = 0,
SnailMail = 1,
MonthlyBilling = 2,
Paypal = 3
}
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public PaymentMethodsEnum PaymentMethod { get; set; }
}
var customer = new Customer();
customer.Id = 1;
customer.Name = "Microsoft";
customer.PaymentMethod = PaymentMethods.MonthlyBilling;
Näeme, et enumeraatori kasutamine on lihtne ning maagiliste konstantide asemel saame kasutada hästi kirjeldatud väärtusi.