Yükleniyor...

C#’da Sabitler ve Enum Kullanımı

C#’da sabitler (const) ve enum kullanımıyla kodunuzu daha okunabilir ve güvenli hale getirin. Gerçek kullanım örnekleriyle öğrenin.

Programlama sırasında bazı değerler vardır ki uygulama boyunca hiç değişmez. Bu gibi durumlarda sabitler (const) veya enum yapıları kullanılır. Sabitler, bir değeri sabitlemek için; enumlar ise anlamlı sabit kümeleri tanımlamak için tercih edilir. Bu sayede kod daha okunabilir, daha güvenilir ve bakımı kolay hale gelir.


Sabitler (const)

const anahtar kelimesi ile tanımlanan değişkenlerin değeri program boyunca değiştirilemez.


const double Pi = 3.14159;
const int MaxUser = 100;

Console.WriteLine("Pi sayısı: " + Pi);
Console.WriteLine("Maksimum kullanıcı: " + MaxUser);

Burada Pi ve MaxUser sabit değerlerdir. Programın hiçbir yerinde değiştirilemezler.


Readonly Sabitler

readonly ile tanımlanan değişkenler yalnızca tanımlandıkları yerde veya constructor içinde değer alabilir. Daha sonra değiştirilemez.


class Ayarlar
{
    public readonly string Versiyon = "1.0.0";

    public Ayarlar(string version)
    {
        Versiyon = version; // constructor içinde atanabilir
    }
}

readonly ile tanımlanan değerler çalışma zamanında belirlenebilir, bu açıdan const’tan farklıdır.


Enum Tanımlama

enum (enumeration), ilgili sabit değerlerin bir arada tutulduğu özel bir veri tipidir. Varsayılan olarak int tipinde değerler içerir.


enum Gunler
{
    Pazartesi,
    Sali,
    Carsamba,
    Persembe,
    Cuma,
    Cumartesi,
    Pazar
}

class Program
{
    static void Main()
    {
        Gunler bugun = Gunler.Carsamba;
        Console.WriteLine("Bugün: " + bugun);
        Console.WriteLine("Günün sayısal değeri: " + (int)bugun);
    }
}

Bu örnekte Gunler isimli enum oluşturulmuş ve içinden Carsamba değeri seçilmiştir.


Enum Değerleri ve Switch Kullanımı

Enum değerleri genellikle switch ifadesi ile birlikte kullanılır.


Gunler bugun = Gunler.Cuma;

switch (bugun)
{
    case Gunler.Pazartesi:
        Console.WriteLine("Hafta başı.");
        break;
    case Gunler.Cuma:
        Console.WriteLine("Hafta sonuna az kaldı!");
        break;
    case Gunler.Pazar:
        Console.WriteLine("Hafta tatili.");
        break;
    default:
        Console.WriteLine("Normal gün.");
        break;
}

Enum’a Özel Değerler Atamak

Varsayılan olarak 0’dan başlayan enum değerlerine istenirse özel sayılar atanabilir.


enum HataKodlari
{
    Basarili = 0,
    Uyari = 100,
    Hata = 200,
    Kritik = 500
}

class Program
{
    static void Main()
    {
        HataKodlari kod = HataKodlari.Hata;
        Console.WriteLine($"Hata Kodu: {(int)kod} - {kod}");
    }
}

Bu şekilde enumlar hata kodları veya durum kodları gibi sabitleri daha anlamlı hale getirir.


TL;DR

  • const: Derleme zamanında sabitlenen değer, değiştirilemez.
  • readonly: Sadece tanımlandığı yerde veya constructor’da atanabilir.
  • enum: Anlamlı sabit değerlerin gruplandığı özel tiptir.
  • Enum değerleri switch yapısıyla kolayca kullanılabilir.