Bu yazımızda kendi türlerimizi oluşturmamızı sağlamaya yarayan Enumeration ifadesini inceleyeceğiz.Numaralandırıcılar sınırlı sayıda kullanabilmemiz için değişken yaratmamıza olanak sağlar.Programlarımızda kullanma nedenlerinin en başında aynı tipten verilerimize kolaylıkla ulaşmamızı sağlar diyebiliriz.Örneğin program içerisinde haftanın 7 günü üzerinden işlem yaparak çeşitli yerlerde gün isimlerini kullanıyorsanız ve kullanırken de belli bir standartda yazıyorsanız hepsini farklı farklı yazmak yerine enum yapısı altında tanımlarsak çağırmak istediğimiz yerde enum adından sonra .'ya basıp intellisense özelliği sayesinde istediğimiz günü seçebiliriz.Çok kolaylık sağlıyor gerçekten :)
Enum yapısı tanımlarken enum anahtar sözcüğü kullanılır. enum'ın varsayılan veri türü int'dir.Örneğin byte veritüründen bir enum tanımlamak isteseydik aşağıdaki işlemi yapacaktık ;
enum Bilgiler : byte
{
}
gibi olacaktı.Enum yapılarının türü char dışındaki bütün tamsayı türleri ile bildirebiliriz(int,long-ulong,uint,short,byte,sbyte).Ama artık sistemler güçlü olduğundan bellek alanlarının boyutu büyük olduğu için veritürünü belirtmemize gerek yoktur.
Örneğimize bakacak olursak enum tipinden Bolumler adında bir enum oluşturup bir firmadaki bölümleri belirtiyoruz.Daha sonra formLoad olayında belirtmiş olduğumuz enum'ları string[] dizimizin içerisine Enum sınıfının GetNames() metoduyla enum'ımız içerisindeki tüm değerleri dizimize alıp o dizinin içinide foreach ile döndükten sonra değerleri bir listBox'a aktarıcaz.btnSec isimli butona tıklandığında ise listBox'dan seçilen değeri comboBox'ımıza ekleyeceğiz.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Enumeration
{
public partial class Form1 : Form
{
enum Bolumler
{
Muhasebe,
SatisvePazarlama,
BilgiIslem,
ARGE,
MusteriHizmetleri
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string[] bolumler = Enum.GetNames(typeof(Bolumler));
foreach (string s in bolumler)
listBox1.Items.Add(s);
}
private void btnSec_Click(object sender, EventArgs e)
{
cmbSecilenBolumler.Items.Add(listBox1.SelectedItem.ToString());
}
}
}
Görüldüğü gibi hiç listbox'a tek tek items eklemekle uğraşmadık.Eğer programımızda sık kullanılan değerler varsa enum yapısı ile belirtirsek bize çok kolaylık sağlar :)
Sonraki makalede görüşmek üzere . İyi çalışmalar
Serhat TAŞ