Örnekle C# Enum(Numaralandırma)
⚡ Akıllı Özet
C#'da numaralandırmalar, haftanın günleri gibi sabit tamsayı değerlerinden oluşan adlandırılmış bir küme tanımlayarak kodun okunmasını ve bakımını kolaylaştırır. `enum` anahtar kelimesi, bu sabit değerleri bir kez tanımlayarak program genelinde yeniden kullanılmasını sağlar.

C# Numaralandırma
Sabit bir değer kümesini tanımlamak için herhangi bir programlama dilinde bir numaralandırma kullanılır. Örneğin haftanın günleri bir numaralandırma olarak tanımlanabilir ve programın herhangi bir yerinde kullanılabilir. C#'ta numaralandırma 'enum' anahtar sözcüğünün yardımıyla tanımlanır.
'enum' anahtar kelimesini nasıl kullanabileceğimize dair bir örnek görelim.
Örneğimizde haftanın günlerini depolamak için kullanılacak günler adı verilen bir numaralandırma tanımlayacağız. Her örnek için Program.cs dosyamızdaki yalnızca ana işlevi değiştireceğiz.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { enum Days{Sun,Mon,tue,Wed,thu,Fri,Sat}; static void Main(string[] args) { Console.Write(Days.Sun); Console.ReadKey(); } } }
Code Açıklama:-
- 'Sıralama' veri tipi Bir numaralandırma bildirmek için belirtildi. Numaralandırmanın adı Günlerdir. Haftanın tüm günleri numaralandırmanın değerleri olarak belirtilir.
- Son olarak, numaralandırmanın değerlerinden birini görüntülemek için console.write işlevi kullanılır.
Yukarıdaki kod doğru bir şekilde girilir ve program başarıyla çalıştırılırsa aşağıdaki çıktı gösterilecektir.
Çıktı:
Çıktıdan, numaralandırmanın 'Sun' değerinin konsolda görüntülendiğini görebilirsiniz.
C#'da Enum'lar Neden Kullanılır?
Enum'lar bir programın okunmasını kolaylaştırır, güvenliğini artırır ve bakımını basitleştirir. Kodun her yerine açıklanmamış sayılar (bazen sihirli sayılar olarak da adlandırılır) serpiştirmek yerine, bir enum, her değere amacını belirten açıklayıcı bir ad verir.
- okunabilirlik: Days.Fri gibi bir isim, 5 rakamından çok daha açık ve anlaşılır; bu nedenle kodu okuyan herkes anlamını hemen kavrar.
- Tip güvenliği: Enum türünde tanımlanan bir değişken yalnızca tanımlanmış üyelerden birini tutabilir; bu da geçersiz değerlerin ortaya çıkmasını engeller.ping Lütfen
- Sürdürülebilirlik: Birbiriyle ilişkili sabitler tek bir yerde bulunur, bu nedenle bir değer eklemek veya yeniden adlandırmak tüm programı tutarlı bir şekilde günceller.
- Bağlanma verileri: WPF ve ASP.NET gibi çerçeveler, bir enum'u açılır listeye bağlayabilir; bu da enum'ları kullanıcı arayüzleri oluşturmak için kullanışlı hale getirir.
Derleyici her atamayı izin verilen üyelere göre kontrol ettiğinden, enum'lar program çalışmadan önce hataları erken yakalamaya da yardımcı olur.
C# Enum'a Özel Değerler Atama
Varsayılan olarak, C# ilk enum üyesine 0 değerini atar ve sonraki her üyeyi bir artırır. Yukarıdaki Days enum'unda Sun 0'a, Mon 1'e ve Sat 6'ya eşittir. Bu varsayılan değerleri, açık sayılar atayarak geçersiz kılabilirsiniz.
- Açık değerler: `Level {Low = 1, Medium = 5, High = 10}` şeklinde bir `enum` yazmak, her bir üyenin varsayılan sayı dizisi yerine seçilen bir sayıya ayarlanmasını sağlar.
- Kısmi atama: Yalnızca bazı üyelere değer atarsanız, derleyici sonraki üyeler için en son atanan değerden başlayarak numaralandırmaya devam eder.
- Altta yatan tür: Bir enum, varsayılan olarak üyelerini int olarak saklar, ancak bellekten tasarruf etmek veya aralığı genişletmek için byte, short veya long tabanlı da kullanabilirsiniz.
Özel değerler, sayıların veritabanı kodları veya protokol sabitleri gibi harici bir sistemle eşleşmesi gerektiğinde faydalıdır; böylece enum, gerçek verileri tam olarak yansıtır.
C# Enum'larını int, string ve Flag'lere Nasıl Dönüştürürsünüz?
C#, sıklıkla bir enum değerini başka bir forma dönüştürmeye ihtiyaç duyar; örneğin, onu sayı olarak saklamak veya metinden geri okumak gibi. Bu dönüşümler birkaç standart yöntemle gerçekleşir.
- Enum'dan int'e: (int)Days.Wed gibi açık bir tür dönüştürme, depolama veya aritmetik işlemler için yararlı olan temel tamsayıyı döndürür.
- int'ten enum'a: Diğer yöne doğru dönüştürme, örneğin (Günler)3, bir sayıyı eşleşen enum üyesine geri dönüştürür.
- Dizeyi numaralandırmaya dönüştürme: Enum.Parse ve daha güvenli olan Enum.TryParse, "Cuma" gibi bir adı geçersiz metin hatası vermeden Days.Fri üyesine dönüştürür.
- Enum'u dizeye dönüştürme: Herhangi bir üye üzerinde ToString yöntemini çağırmak, o üyenin adını döndürür; bu nedenle Days.Sun.ToString() görüntüleme veya kayıt için "Sun" ifadesini üretir.
- Üye listesi: Enum.GetValues ve Enum.GetNames yöntemleri her değeri veya adı döndürür; bu da menüleri doldururken veya girişi doğrularırken yardımcı olur.
Bir enum'un tek bir seçenek yerine birden fazla seçeneği temsil etmesi gerektiğinde, Flags özniteliğini uygulayın ve her üyeye 1, 2, 4 ve 8 gibi ikinin kuvvetlerini atayın. Ardından üyeleri bit düzeyinde OR operatörüyle birleştirebilir ve HasFlag yöntemiyle belirli bir seçeneği test edebilirsiniz.
Bu dönüştürme teknikleri, bir enum'un okunabilir adlar, saklanan sayılar ve birleştirilmiş bayrak kümeleri arasında sorunsuz bir şekilde geçiş yapmasını sağlar.ping Programın geri kalanı hem tür güvenli hem de takip etmesi kolay.


