Enum Yapısının Kullanımı Nasıldır?

Karar yapılarının çok fazla olduğu ve verilerin birbirleri ile ardığık olduğu durumlarda kullanılan bir yapıdır. Örnek olarak kalvyeden girilen posta koduna göre ilçe adını veren bir kod parçacığı buna girebilir. Enum, enumaration kelimesinin kısaltmasıdır. Sıralama anlamına gelir. Normalde if-else veya swtich case kullanılarak az önce verdiğim örneği çözebilirim ama bu bir nevi boşa kürek çekmek olur.

Enum tıpkı bir dizi gibidir. Enum yapasında ilk elemanın indis değeri 0’dır. Enum yapısı kurulurken syntax aşağıdaki gibidir:

Enum Ilceler { Adalar, Avcılar, Beylikdüzü, Bakırköy, Başakşehir, Esenyurt, Kadıköy, Kartal }

Gibi kullanılır. İfadelerimiz string de olsa tırnak içinde yazılmaz. Bu örnekte; 0 nolu eleman Adalara denk düşer.

Şöyle bir örnek yapalım, bir form projesi açalım. Projeme bir textbox ekliyorum. Bir adette buton. Textboxa 1 ve 12 dahil olmak üzere sayı girilmesini istiyorum. Butona bastığımda girilen sayı değerine göre bana Ay bilgisini messagebox ile gösteren programı yazalım.

Şimdi enum yapısının kolaylığını bilmesek ilk akla gelen switch case olacaktı veya daha da zorlaştırıp if else yapısı olacaktı. Bunun yerine tabiri caizse boşa hamallık yapmak yerine ben enum yapısı kullanarak bu olayı çok az kodla çözebilirim. Tabi dikkat edilecek bir husus var, enumda ilk eleman sııfır (0) olarak geçer. O yüzden ben enum yapımda ilk elemana boş değeri vereceğim, bunu da nasıl yapıyorum aşağıdaki kodlarda görebilirsiniz.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace EnumOrnek
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        enum aylar {  X, Ocak, Şubat, Mart, Nisan, Mayıs, Haziran, Temmuz, Ağustos, Eylül, Ekim, Kasım, Aralık};
        private void button1_Click(object sender, EventArgs e)
        {
            //Klavyeden girilen değeri okutuyorum.
            int sayi = Convert.ToInt16(textBox1.Text);

            //aylar adlı enum yapımdan bir değer türetiyorum
            aylar a;

            //bu değere ayların sayiya denk düşen değerini atıyorum
            a = (aylar)sayi;

            //sonra messagebox ile gösterdim.
            MessageBox.Show(a.ToString());
        }
    }
}


Görüleceği üzere ben 0 indexe sahip kısmı atlatmak için X gibi bir değer ataması yaptım. Enum yapımı global alanda tanımladım.

Klavyeden rakam girileceği için int tipinde sayi değişkenimi oluşturdum ve veri dönüştürme işlemini yaptım.

Enum yapımdan a adında bir değer ürettim.

Bu a değerine aylar enum yapım içinde yer alan sayi değerine denk düşen değeri attım ve sonra da messagebox ile yazılmasını sağladım.

Şimdilik bu kadar 😊

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir