Sizin gibi okuyucular MUO'yu desteklemeye yardımcı oluyor. Sitemizdeki bağlantıları kullanarak bir satın alma işlemi gerçekleştirdiğinizde, bir ortaklık komisyonu kazanabiliriz. Devamını oku.

Numaralandırmalar, bir değişken için adlandırılmış seçenekler listesi tanımlamanıza izin veren kullanışlı bir veri türüdür. Örneğin, haftanın her gününü saklamak istiyorsanız geçerli değerleri temsil etmesi için bir numaralandırma kullanabilirsiniz.

Numaralandırmalar, anlamlı adları teşvik ederek ve kullanabileceğiniz değerleri sınırlandırarak kodunuzun okunmasını ve yazılmasını kolaylaştırır. Bir enumun olası değerlerini işlemek için bir switch deyimi kullanmak genellikle uygundur.

Enum'ları C# dahil birçok programlama dilinde bildirebilir ve kullanabilirsiniz.

C#'ta Enum Nasıl Bildirilir?

C#'ta, genellikle numaralandırmaları ad alanı düzeyinde çözersiniz. Örneğin, bir C# konsol uygulamasında, sıralamalarınızı sınıf özellikleri olarak bildirebilirsiniz. Bunun bir örneğini görüntüleyebilirsiniz GitHub deposu.

instagram viewer
sınıfprogramı
{
Sıralama Hafta içi {
Pazartesi,
Salı,
Çarşamba,
Perşembe,
Cuma,
Cumartesi,
Pazar
}

statikgeçersizAna(sicim[] bağımsız değişkenler)
{

}
}

Bir enum bildirdiğinizde, her seçenek kendi dizinini temsil eden bir tamsayı değeri alır. Varsayılan olarak, numaralandırmadaki ilk değerin dizin değeri 0'dır. Bunu değiştirmek için, numaralandırmayı bildirdiğinizde ilk öğe için kendi dizininizi belirtebilirsiniz:

Sıralama Hafta içi { 
Pazartesi = 1,
Salı,
Çarşamba,
Perşembe,
Cuma,
Cumartesi,
Pazar
}

Bu durumda, ilk elemanın indeksi Pazartesi başlar 1. Bir sonraki elemanın indeksi Salı olacak 2, ve benzeri.

C#'ta Bir Enum Değerine Nasıl Erişilir?

Enums içinde saklanan değerlere erişmenin birçok farklı yolu vardır. Sıralamadaki her seçenek için döndürülen değer dizindir. Bu örnek için, değeri Hafta içi. Cuma dır-dir 5.

Numaralandırmanın adını almanın bir yolu, Numaralandırmalar. GetName() işlev. Bu, 5. indeksteki seçeneğin adını alır:

sicim cuma = Enum. Adı Al(bir çeşit(Hafta içi), Hafta içi. Cuma);
Konsol. Yazı çizgisi("Tanrıya şükür öyle" + cuma + "!");
// Çıktı = Tanrıya şükür bugün Cuma!

Bir değere indeksini kullanarak da erişebilirsiniz. Bu durumda, Hafta içi sıralamasında (Salı olan) dizin 2'deki değer değişkende depolanır:

Hafta içi salı = (Hafta içi)2;
Konsol. Yazı çizgisi("Bugün " + salı);
// Çıktı = Bugün Salı

Bir numaralandırmayı argüman olarak ilettiğinizde Konsol. Yazı çizgisi(), toString() enum yöntemi otomatik olarak çalışır. Bu, enum'un gerçek sayısal değerini yazdırmak yerine, 5, dize değerini yazdıracak, Cuma.

Konsol. WriteLine (Hafta içi. Perşembe + " yeni " + Hafta içi. Cuma);
// Çıktı = Perşembe yeni Cuma

ayrıca yapabilirsin veri türünü dönüştürün veya ayrıştırın bir seçeneğin dizinini saklamanın başka bir yolu olarak bir tamsayıya:

int pazartesi Dizini = (int)Hafta içi. Pazartesi;
Konsol. WriteLine (pazartesiIndex);
// Çıktı = 1

C#'ta Enums Nasıl Karşılaştırılır?

C#'ta, karşılaştırma operatörlerini (==, !=, , <=, >=) kullanarak numaralandırmaları karşılaştırabilirsiniz. Bu, seçeneklerin sayısal değerini karşılaştıracaktır.

Hafta içi gün1 = Hafta içi. Pazartesi;
Hafta içi day2 = Hafta içi. Salı;

eğer (gün1 == gün2)
{
Konsol. Yazı çizgisi("Günler aynı.");
}
başka
{
Konsol. Yazı çizgisi("Günler farklı.");
}

Bu örnekte Hafta içi değeri. Pazartesi 1'dir ve Hafta içi'nin değeridir. Salı 2, yani 1 == 2 karşılaştırma başarısız olacaktır.

Numaralandırmaları karşılaştırmanın başka bir yolu da eşittir() yöntem:

eğer (gün1.Eşittir (gün2))
{
Konsol. Yazı çizgisi("Günler aynı.");
}
başka
{
Konsol. Yazı çizgisi("Günler farklı.");
}

ayrıca yapabilirsin bir C# switch deyimi kullanın bir enumdaki her seçeneğe karşı bir değeri karşılaştırmak için. Bu örnekte, kod Çarşamba durumuna düşecektir:

Weekday valueToCompare = Hafta içi. Çarşamba;

anahtar (karşılaştırılacak değer)
{
dava Hafta içi. Pazartesi:
Konsol. Yazı çizgisi("Kahveye ihtiyacım var.");
kırmak;
dava Hafta içi. Salı:
Konsol. Yazı çizgisi("Kahveye ihtiyacım var.");
kırmak;
dava Hafta içi. Çarşamba:
Konsol. Yazı çizgisi("Kahveye ihtiyacım var.");
kırmak;
dava Hafta içi. Perşembe:
Konsol. Yazı çizgisi("Perşembe yeni Cuma!");
kırmak;
dava Hafta içi. Cuma:
Konsol. Yazı çizgisi("Allaha şükür bugün cuma!");
kırmak;
dava Hafta içi. Cumartesi:
Konsol. Yazı çizgisi("Favori günüm!");
kırmak;
dava Hafta içi. Pazar:
Konsol. Yazı çizgisi("Diğer favori günüm!");
kırmak;
varsayılan:
Konsol. Yazı çizgisi("Haftanın geçersiz günü.");
kırmak;
}

C#'ta Numaralandırmalar Üzerinden Yineleme Nasıl Yapılır?

C# kullanarak numaralandırmalar üzerinde yineleme yapabilirsiniz. Sıralama. GetValues() enumdaki tüm değerlerin bir dizisini döndüren yöntem. Bu kod parçacığı, Pazartesi, Salı vb. dahil olmak üzere haftanın her günü yazdırılır:

her biri için (Hafta içi gün içinde Sıralama. Değerleri Al(bir çeşit(Hafta içi)))
{
Konsol. Yazı çizgisi((int)gün); // dizini yazdırmak için
Konsol. Yazma Satırı (gün); // Metin değerini yazdırmak için
}

Ayrıca, enum değerlerini kullanarak yineleyebilirsiniz. Sıralama. GetNames() yöntem. Numaralandırma seçeneklerinin adlarını temsil etmek için bir dize değerleri listesi döndürür:

her biri için (sicim isim içinde Sıralama. GetNames(bir çeşit(Hafta içi)))
{
int dizin = (int)(Hafta içi) Enum. Ayrıştır(bir çeşit(Hafta içi), isim);

Konsol. WriteLine (dizin); // dizini yazdırmak için
Konsol. Yazma Satırı (isim); // Metin değerini yazdırmak için
}

C#'ta Numaralandırmaları Kullanma

Daha okunabilir ve hatalara daha az eğilimli hale getirmek için kodunuzdaki numaralandırmaları kullanabilirsiniz. Enums, sözlükler gibi diğer yapılarla eşleştirildiğinde de çok yararlı olabilir.