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
switchyapısıyla kolayca kullanılabilir.