C# Numaralandırma

C Numaralandirma



C#, programlar, web siteleri, android uygulamaları, oyunlar ve daha fazlasını geliştirmek için kullanılan programlama dilidir. C#, yerleşik işlevlere sahip farklı kitaplıkları ve çerçeveleri destekler. Enum bir numaralandırmadır, bir sınıftır. Bir sınıfın içinde farklı veri türleri ve işlevleri vardır, içinde farklı değişkenler içeren bir veri yapısı. Numaralandırma, bir kullanıcının içindeki veri türlerini tanımladığı derleme zamanındaki tüm değişkenleri bildiğimizde özellikle yararlıdır. Enum farklı değerler içerir ve bu değerler değiştirilemez. Değerler kodda alınabilir ve kullanılabilir, ancak çalışma zamanında değerleri değiştiremeyiz, bunlar yalnızca okunabilir ve değiştirilemez. Numaralandırma, içindeki tüm verileri bir dize olarak ele alır, eğer bir tamsayı değeri kullanmak istiyorsak, cast yazmamız gerekir. Numaralandırma, daha az bellek ve yer kapladıkları için kullanışlıdır.

Sözdizimi







enum E_Ad { Değer_1, Değer_2, Değer_3,….. } ;


Veya



enum E_Ad { değer_1 = 3. 4 , Değer_2 = 90 , Değer_3 = 8 ,….. } ;


öznitelik 'Sıralama' numaralandırmayı tanımlayan anahtar kelimedir. Kullanıcı tanımlı veri tiplerine ihtiyaç duyduğumuzda, ‘ Sıralama' Anahtar kelime, kullanıcı tanımlı veri tipini oluşturmak için kullanılır. ' E_adı' enum sınıfının adıdır. Bu sınıfın içinde kaşlı ayraçlar, içindeki tüm parametreleri ve değerleri içerecektir. Sadece argümanları yazabiliriz ve derleyici onlara değerler atayacaktır. Varsayılan olarak, ilk değerden başlayarak 0 dizininde depolar ve sonraki 1'de vb.



Argümanların veri tipinde herhangi bir kısıtlama yoktur, tamsayı değerleri, kayan noktalı değerler, karakterler, Boolean veya dize atayabiliriz. Ancak değerlere veri tiplerini atamazsak, onlara depolandıkları sabit değeri otomatik olarak atar.





Türler

C# dilinde iki tür numaralandırma vardır. Bunlar aşağıda listelenmiştir:

    • basit numaralandırma
    • Bayrak numaralandırma

Basit Numaralandırma

Bu kategoride 'enum' sınıfının üyeleri tek bir değer içerir.



Bayrak Numaralandırma

Bu kategoride, flag enum sınıfının üyesi, bitsel işleci veya OR (|) kullanan birden çok değer veya birden çok değer içerir.

Örnek 1:

Bu örnekte, basit 'enum' sınıfını nasıl kullanabileceğimizi öğreneceğiz ve değerleri değişkenlere atamadan geri alacağız.


C# programlama dilinde kodlama yapmak için öncelikle yeni projeyi oluşturmamız ve ardından kodlamaya başlamamız gerekiyor. Bir konsol uygulaması oluşturmak istediğimizde, class ve main() fonksiyonunu otomatik olarak yazacak olan konsol uygulamasını, C# çerçevesini seçmeliyiz. Yukarıdaki basit 'enum' terimini kodda kullanmak için, 'Program' dahili sınıfını tanımlayıp başlatacağız. Enum, anahtar kelime olduğundan ve enumdan sonraki bir sonraki kelime 'meyve_adları'dır. Küme parantezlerin içinde istediğimiz listeyi tanımlıyoruz. Burada enum sınıfı dört meyve ismi içermektedir. main() yönteminin içindeki tüm işlevleri çağırıyoruz. Statik main() içinde, tüm enum değerlerini birbiri ardına göstereceğiz. Bu kodda, değerleri değil, sadece enum argümanlarını yazıyoruz. Böylece, onlara değer olarak depolandıkları dizinleri otomatik olarak atayacaktır.

Console.writeline() fonksiyonu çıktı ekranına yazmak için kullanılır ve mesajı sunduktan sonra imleci bir sonraki satıra taşır. Bu ifadenin içine bir mesaj yazın ve tanımlanan mesajı değerle birlikte göstermek için onu bir '+' işaretiyle birleştirin. Birleştirdikten sonra 'enum name' yazın ve belirli bir 'enum' türünü adreslemek için (.) kullanın: meyve_adları.Apple. Ardından, bir sonraki ifadede, türü depolandığı mesaj ve dizinle birleştirmek için tekrar (+) işaretini kullanın. Dizini elde etmek için önce typecasting yaparak onu bir tamsayıya dönüştürmemiz gerekir. C# tipinde döküm sadece parantez kullanılarak yapılır. Parantez içine, typecast yapmak istediğimiz veri tipini yazın. Parantez dışına değişken adını yazın, yani (int)var_adı. Bu şekilde, bir enum değeri ve saklandığı indeks ile mesajı alabiliriz.

Bunu üç kez tekrarlayın; sadece mesajı ve numaralandırma türünü değiştirin. Numaralandırma, kodun güzel ve temiz görünmesini sağlar. Console.ReadKey() işlevi, biz kapatana kadar konsolu aktif tutacaktır. Bu deyimi kullanmazsak konsol bir kez yanıp sönecek ve ardından kaybolacaktır.

Örnek 2:

Bu programda, sınıfın özelliklerine farklı değerler atayarak basit 'enum' sınıfını uygulayacağız.


İkinci örnekte, yine konsol uygulaması için bir proje oluşturduk ve 'enum' anahtar sözcüğü ile 'Program' dahili sınıfı içinde bir numaralandırma tanımladık. Bu kez, farklı değerlere sahip 'öğeler' sınıfını içerir. main() işlevinin içinde, 'items' enum sınıfının tüm öğelerine erişeceğiz. console.writeLine() yöntemini kullanalım. İçinde bulunan her şeyi gösterecektir. Önce bir mesaj görüntüleyin, ardından miktarı içeren ilk öğeyi görüntülemek için tekrar Console.WriteLine() işlevini çağırın. Terminalde görüntülemek istediğimiz bir metin tanımlayın ve onu items.chairs ile birleştirin. Enum sınıfı 'items'in ilk maddesini (sandalyeleri) alacaktır. Bu öğenin miktarını elde etmek için enum sınıfındaki veriler bir dizi biçiminde olduğu için döküm yapmamız gerekiyor. Bu nedenle, değerlerine erişmek için önce cast yazıyoruz. 'Sandalyelerin' değerini elde etmek için, (int)items.chairs gibi döküm yapın. Aksi takdirde, sadece 'sandalye' öğesini alacağız, değerini değil. Burada dikkat ettiysek '\n' ve '\t' sembolleri kullanılıyor. '\t' kullanarak bir sekme alanı veriyoruz ve '\n' kullanarak imleci bir sonraki satıra taşıyacağız. Bu prosedürü iki kez tekrarlayın. Enum değerlerini güncellememiz yeterli. Sonunda, çıktıyı görebilmemiz için konsolu aktif tutmak için console.ReadKey() yazmanız yeterlidir.

Örnek 3:

Bu senaryoda 'flag' enumunu kullanacağız.


Basit numaralandırmada, enum sınıfının üyesine yalnızca bir değer atayabiliriz. Ancak bayrak numaralandırma ile enum sınıfının bir üyesine birden fazla değer atayabiliriz. Bu tür numaralandırma, farklı seçeneklerle uğraştığımızda ve birden fazla değerimiz olduğunda yardımcı olur. Bayrak numaralandırmayı kullanmak için, bir enum sınıfı tanımlamadan önce [flags] yazmalı ve ardından enum sınıfı 'flag_example' yazmalıyız. Artık bu class içerisinde bir üyeye birden fazla değer atayabiliyoruz. Bu örnekte, 'sürücü' özelliğine iki değer atadık ve (|) operatörünü kullanarak her iki değeri de ayırdık. Ardından, main() işlevinde bir 'var flags' değişkeni bildirin. Konsolda birden fazla öğe göstermek için veya (|) operatörünü kullanın ve ardından enum öğelerini sınıf adı ve öğe adıyla çağırın. Bir mesaj görüntülemek için Console.WriteLine() yöntemini çağırın. Bayrağın değerini temsil etmek için başka bir Console.Write() içine 'flag' yazın. Bir sonraki ifadede, biz kapatana kadar konsolu açık tutacak olan Console.ReadKey() işlevi çağrılır.

Çözüm

Bu kılavuzda numaralandırmayı, ne olduğunu ve C# dilinde nasıl kullanabileceğimizi öğrendik. Numaralandırma, kodu basit ve okunabilir hale getirir. Çünkü enum sınıfındaki değerler değiştirilemez. Değer değiştirmeyi gerektirmeyen bu tür verilerle uğraşırken bize fayda sağlar. Farklı kodların yardımıyla sözdizimini ve numaralandırma türlerini tartıştık. Numaralandırma daha az bellek alır ve kullanımı kolaydır.