C# Dersleri : Enum Oluşturmak

C# içerisinde kullanılan sabitlerin bir anlam ifade etmesi için sabitler gruplandırılmaktadır. Bu gruplara enum adı verilmektedir. Bu dersimizde sizlere C# içerisinde enum oluşturmayı göstereceğiz.

C# içerisinde enum tanımlaması aşağıdaki gibi yapılmaktadır.

enum enum adı
{
Sabit 1,
Sabit 2,
Sabit 3,
.
.
.
}

Şimdi basit bir örnek yapalım. Bunun için bir adet form uygulaması oluşturun. Form uygulamasına bir adet buton ekleyin ve aşağıdaki kodları oluşturmuş olduğunuz programa ekleyin.

Kodları eklemeden önce Visual Studio araç çubuğunda yer alan Proje alanına tıklayın ve Başvuru Ekle seçeneğini seçin. Karşınıza gelen ekranda sağ tarafta yer alan arama çubuğuna Visual Basic yazın. Karşınıza birçok seçenek listeli bir halde gelecektir. En başta yer alan Microsoft.VisualBasic seçeneğini işaretleyip kaydedin.

Daha sonra Form uygulamasının kod bölümünün en üst tarafına (namespace üstüne) using.Microsoft.VisualBasic; yazın ve kodları aşağıdaki gibi düzenleyin.

public enum Kis
{
Aralık,
Ocak,
Şubat
}
private void Button1_Click(object sender, EventArgs e)
{
byte i = Convert.ToByte(Interaction.InputBox("Bir Numara Giriniz"));
Kis aylar;
aylar = (Kis)i;
MessageBox.Show(aylar.ToString());
}

Programı çalıştırın ve butona tıklayın. Karşınıza küçük bir mesaj kutusu çıkacaktır. Buraya bir sayı girin ve Tamam tuşuna basın. Ekranda girmiş olduğunuz sayıya göre değer gözükecektir.

Örneğin bizim örneğimizde üç adet değer mevcut. Biz 3. değere yani Şubat değerine erişim sağlayabilmek için 2 değerini gireceğiz.

Aklınıza neden 3 girmeyeceksin diye bir takım sorular gelmiş olabilir. Bunun sebebi ise gayet basittir. Bütün programlama dillerinde ilk değerin indeks numarası 0’dan başlar ve devam eder.

Elemanın Tanımlanıp Tanımlanmadığını Tespit Etme

Enum içerisinde bir elemanın var olup olmadığını ölçmek için IsDefined komutu kullanılır. Yukarıda yapmış olduğumuz örnekte Mart değerinin tanımlı olup olmadığını bize gösteren basit bir uygulama yapalım.

Daha önceden oluşturmuş olduğunuz program içerisine aşağıdaki kodları ekleyin.

if (Kis.IsDefined(typeof(Kis), "Mart"))
{
MessageBox.Show("Mart ayı tanımlıdır.");
}
else {
MessageBox.Show("Mart ayı tanımlı değildir.");
}

Programı çalıştırdığınızda ekranda Mart ayı tanımlı değildir yazacaktır.

Format Karakterleri İle Enum İçerisine Erişim Sağlama

Enum içerisinde tanımlı olan değerlere erişim sağlamak için bazı format karakterlerini de kullanabiliriz. Bu format karakterleri şunlardır:

G / g

Değerleri genel gösterir.

D / d

Değerlerin sayısal karşılıklarını gösterir.

F / f

Değerlerin metinsel karşılığını gösterir.

X / x

Değerlerin on altılık karşılıklarını gösterir.

Şimdi basit bir örnek yapalım. Yine aynı örnek üzerinden gidelim. Bu örnekte yer alan bazı komutları aşağıdaki gibi düzenleyelim.

MessageBox.Show(aylar.ToString());
MessageBox.Show(aylar.ToString("G"));
MessageBox.Show(aylar.ToString("f"));
MessageBox.Show(aylar.ToString("D"));
MessageBox.Show(aylar.ToString("X"));

Yukarıdaki kodu inceleyelim. İlk satırda düz bir şekilde girmiş olduğunuz rakamın temsil ettiği değeri göreceksiniz.

İkinci satırda yine girmiş olduğunuz rakamın temsil ettiği değeri göreceksiniz.

Üçüncü satırda da tıpkı diğer iki mesajda da gösterildiği gibi string (metinsel) bir ifade göreceksiniz.

Dördüncü satırda bu metinsel ifadenin sayısal karşılığını rakam belirtilmiş bir şekilde göreceksiniz.

Ve son olarak son satırda da metinsel ifadenin on altılık sistemde gösterilişini göreceksiniz. Örneğin 00000000 gibi.

System.Enum Sınıfı

Bu sınıf enum içerisindeki elemanlar üzerinde herhangi bir işlem yapmanıza olanak sağlar. Bu sınıf içerisinde bazı metotlar kullanılır. Bunlar:

  • GetName
  • GetNames
  • GetValues
  • Parse

metotlarıdır. Şimdi tek tek kullanımlarını görelim.

GetName Metodu

Bu metot tanımlanmış enumun içerisinde yer alan bir elemana, sayısal değerini kullanarak erişim sağlamak amacıyla kullanılır.

Şimdi bir konsol uygulaması oluşturun ve aşağıdaki gibi kodlarınızı düzenleyin.

using System;
namespace ConsoleApp1
{
class Program
{
enum Kis
{
Aralık = 5,
Ocak = 7,
Şubat = 9
}
static void Main(string[] args)
{
Console.WriteLine(Enum.GetName(typeof(Kis), 7));
Console.ReadLine();
}
}
}

Programı çalıştırdığınızda ekranda Ocak yazacaktır. Çünkü biz Ocak değerinin sayısal karşılığını 7 olarak atadık.

GetNames Metodu

Tanımlanmış olan elemanları metinsel formatta elde ederek bir dizi içerisine aktarmak için kullanılır.

foreach (string aktar in Enum.GetNames (typeof(Kis)))
{
listbox2.Items.Add(aktar);
}

Yukarıdaki örneğimizde Kış değeri içerisinde yer alan tüm değerleri listbox2 içerisine aktardık.

GetValues Metodu

Tanımlanmış sabitlerin sayısal değerlerini int türünde elde edip bir dizi içerisine aktarımını sağlamak amacıyla kullanılır.

foreach (string aktar in Enum.GetValues(typeof(Kis)))
{
listbox2.Items.Add(aktar);
}

Yukarıdaki örneğimizde Kış değeri içerisinde yer alan tüm değerleri sayısal bir şekilde listbox2 içerisine aktardık.

Parse Metodu

Tanımlanmış olan sabitin / elamanın ismine ya da aldığı değere erişmek için kullanılmaktadır.

Bugün sizlere C# içerisinde Enum’ın nasıl kullanıldığına dair bilgiler verdik. Anlamadığınız herhangi bir şey varsa bizimle buradan iletişime geçebilirsiniz.

Visual Studio’yu ücretsiz olarak buradan indirebilirsiniz.

C# ile ilgili hazırlamış olduğumuz bütün derslere buradan erişim sağlayabilirsiniz.

Reklamlar

Bir cevap yazın

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