İnfografik
← Ünite 14
Nesne Tabanlı Programlama 1

Ünite 14: Değişmezler, Sabitler ve Numaralandırma

C# Değişken İsimlendirme Kuralları
Değişkenler harf, rakam veya alt çizgi içerebilir ancak mutlaka harf veya alt çizgi ile başlamalıdır. Rakamla başlamak veya boşluk bırakmak hatalı kullanımdır. Ayrıca 'int', 'if', 'class' gibi dile özgü anahtar kelimeler değişken ismi olamaz.
Onaltılık (Hexadecimal) Gösterim
Onaltılık sayılar 0-9 rakamları ve A-F harfleri ile ifade edilir. Önek olarak '0X' veya '0x' kullanılır. Örneğin '0X456Face' geçerli bir onaltılık değişmezdir.
Sekizlik (Octal) Gösterim
Sekizlik sayılar sadece 0-7 arasındaki rakamları içerir ve '0' önekiyle başlar. Örneğin '0146' geçerli bir sekizlik değişmezdir, ancak '07887' geçersizdir çünkü 8 rakamı sekizlik tabanda kullanılamaz.
Kayan Noktalı Sayı Hassasiyeti
Varsayılan olarak her kayan noktalı değişmez 'double' türündedir. Eğer bir değişkeni 'float' olarak tanımlamak isterseniz, değerin sonuna 'f' veya 'F' eklemelisiniz. Aksi takdirde derleyici tür uyumsuzluğu hatası verebilir.

Anahtar Kavramlar

Değişmezler (Literals)Programda değişkenlere atanan, derleme zamanında sabitlenen değerlerdir. Örnek: 'int sayi = 10;' satırındaki 10 bir tamsayı değişmezidir.
Sabitler (Constants)Program boyunca değeri değiştirilemeyen, const anahtar sözcüğüyle tanımlanan verilerdir. Örnek: 'const double pi = 3.14;' ifadesi ile pi değeri sabitlenir.
Numaralandırma (Enumerations)İsimlendirilmiş tamsayı sabitleri kümesidir. Örnek: Haftanın günlerini 0-6 arası sayılarla temsil etmek yerine Pazartesi, Sali gibi isimlerle gruplandırmaktır.
Case SensitivityProgramlama dilinin büyük ve küçük harfe duyarlı olmasıdır. Örnek: C#'ta 'Degisken' ile 'degisken' farklı iki değişkeni ifade eder.
Override (Geçersiz Kılma)Derleyicinin bir değişmeze atadığı varsayılan veri türünü, sonek kullanarak değiştirmektir. Örnek: 12.25 değerini 12.25f yaparak float türüne dönüştürmek.
FlagsAttributeNumaralandırmaların bitsel operatörlerle birleştirilerek bayrak koleksiyonu gibi kullanılmasını sağlayan bir özelliktir. Örnek: Renkler enum'unda Kirmizi | Sari kombinasyonunu oluşturmak.
PolimorfizmFarklı nesnelerin aynı arayüzü kullanabilme yeteneğidir. Null değişmezler, herhangi bir başvuru türüne sığabildikleri için bu yapıya iyi bir örnektir.
Derleme Zamanı (Compile Time)Kodun çalıştırılmadan önce makine diline veya ara dile çevrildiği aşamadır. Sabitler bu aşamada değerlendirilir.
Karakter DeğişmezleriTek tırnak içinde ifade edilen char türündeki verilerdir. Örnek: 'char karakter = 'A';' kullanımı.
Dize DeğişmezleriÇift tırnak içinde tanımlanan string türündeki veri bloklarıdır. Örnek: 'string mesaj = "Merhaba";' kullanımı.
Bitsel OperatörlerSayıların ikilik tabandaki değerleri üzerinde işlem yapan operatörlerdir. Enum yapılarında bayrakları birleştirmek için kullanılır.

Diğer Önemli Bilgiler

Visual Studio 2019 Ortamı

Ünitedeki tüm örnek kodlar Visual Studio 2019 üzerinde C# diliyle yazılmıştır. Kodların çalışması için 'public' sınıf tanımlamalarına ve uygun namespace yapısına dikkat edilmesi gerekmektedir.

Enum Temel Türleri

Numaralandırmalar varsayılan olarak 'int' türündedir ancak 'byte', 'sbyte', 'short', 'ushort', 'uint', 'long', 'ulong' türlerinden birine dönüştürülebilir. Bu, Enum adından sonra iki nokta üst üste konularak belirtilir.

Sabitlerin Statik Doğası

Sabitler (const) doğası gereği 'static' nesnelerdir. Bu nedenle tanımlanırken ayrıca 'static' anahtar sözcüğü kullanılmaz. Sabitler sınıfın tüm örnekleri için aynı değeri taşır.

Sınavda Dikkat Et

  • Sabitlerin (const) çalışma zamanında değil, derleme zamanında değerlendirildiğini unutmayın; bu yüzden DateTime gibi dinamik nesnelerle kullanılamazlar.
  • C#'ın büyük/küçük harfe duyarlı olduğunu hatırlayın; 'Degisken' ile 'degisken' aynı şey değildir.
  • Numaralandırmaların (enum) varsayılan olarak 'int' olduğunu ancak 'byte' gibi daha küçük türlerle bellek tasarrufu yapılabileceğini aklınızda tutun.
  • Değişken isimlendirmede rakamla başlamanın yasak olduğunu, ancak alt çizgi (_) ile başlamanın serbest olduğunu unutmayın.
  • Sayısal sistemlerin (sekizlik, onaltılık, ikili) öneklerini (0, 0x, 0b) karıştırmamaya özen gösterin.
  • FlagsAttribute'un sadece tekil değil, çoklu (bitsel) seçimler için kullanıldığını hatırlayın.