Değişkenler ve Veri Tipleri

Değişkenler

Program yaşam döngüsü içerisinde belirli bir veri türünün değerini içeren yapılara değişken adı verilir. Her değişkene, bellek üzerinde o değişkenin tutacağı veri tipine yetecek büyüklükte bir yer ayrılır. Bu yere değişkenin adresi adı verilir. Her değişkene bir isim verilir ve bu isim kullanılarak değişkene değer atanabilir, atanan değer okunabilir ve değiştirilebilir.

Değişken Tanımlama Kuralları

Değişken tanımlanırken aşağıdaki listede belirtilen kurallara uyulması gerekmektedir.

Değişken ismi yalnızca harf, rakam ve _ (alt çizgi) içerebilir.

Değişken isimi harf ile başlamak zorundadır.

Değişken ismi 255 karakterden fazla olamaz.

Değişken ismi tanımlanırken karakterler arasında boşluk bırakılamaz.

C# büyük küçük harf duyarlı bir programlama dili olduğundan; Değişken hangi isimle tanımlanmış ise o isimle kullanılabilir.

Komut ifadeleri değişken adı olarak kullanılamaz. Örneğin; AND, OR ve NOT gibi.

Değişken İsimlendirme Standartları

Kurallara uygun şekilde tanımlanmış bir değişkene verilen isim; Her ne kadar programın çalışması için bir sorun teşkil etmese de tutarlı bir görünüm, kod bütünlüğü ve kodların rahat okunup anlaşılabilmesi açısından önem arz etmektedir. Bu sebeple resmi olarak belirlenmiş 2 (iki) adet isimlendirme standardı bulunmaktadır.

Pascal Case Değişken adını oluşturan her kelimenin baş harfinin büyük yazılarak değişkenin isimlendirildiği standarttır.

Camel Case Değişken adını oluşturan ilk kelimenin baş harfi küçük, diğer kelimelerin baş harfleri büyük yazılarak değişenin isimlendirildiği standarttır.

Değişken Tanımlama

C# programlama dilinde değişken tanımlamak için; [Değişken Tipi] [Değişken Adı]; şeklinde tanımlama yapılmalıdır.

Değişkene Değer Atama

Değer atama işlemi, değişkeni tanımlama esnasında yapılabileceği gibi daha sonrada gerçekleştirilebilir. Bir değişkene değer atamak için C# da atama operatörü olan “=” eşittir sembolü kullanılır.

Değişken Tipleri

Değişkenler değer tipi ve referans tipi değişkenler olmak üzere 2 (iki) gruba ayrılırlar. Değer tipi değişkenler bellekte stack adı verilen alanlarda saklanırken referans tipi değişkenler heap adı verilen alanlarda saklanır.

Değer Tipleri

Değer tipleri; veriyi taşıyan ve taşıdığı veriye göre bellek üzerinde yer dolduran değişken tipleridir. Bellekte az yer kaplarlar ve hızlı bir şekilde erişilebilirler. Değer tipi değişkenler, Tam Sayı Değişken Tipleri, Ondalıklı Sayı Değişken Tipleri, Bool Değişken Tipi ve Char Değişken tipidir.

Tamsayı Değişken Tipleri

Tam sayıları saklamak ve üzerlerinde işlem yapabilmek için kullanılan değişken tipleridir. Tamsayı değişken tipleri byte, sbyte, short, ushort, int, uint, long, ulong, nint ve nuint'dir.

Ondalıklı Sayı Değişken Tipleri

Ondalıklı sayıları saklamak ve üzerlerinde işlem yapabilmek için kullanılan değişken tipleridir. Ondalıklı sayı değişken tipleri float, double ve decimal'dır.

Bool Değişken Tipi

Bool veri tipi yalnızca iki değer alabilir. Bunlar “true” ve “false”dur. Bellekte 1 byte yer kaplar. Bool değişken tipi, programın akışının yönlendirilmesinde ve döngü yapılarında sıkça kullanılmaktadır.

Char Değişken Tipi

C#’da karakterler, “Unicode” adı verilen ve uzunluğu 2 byte olan bir sistemle belirlenir. Char veri tipi de bu “Unicode” karakterler içerisinden sadece tek bir değer alabilen bir değişken tipidir.

Referans Tipleri

Referans tipleri; bellek bölgesinde veri yerine adresi tutarlar ve o adresin gösterdiği yerde de veri tutulur. Referans tipi değişkenler string, object ve dynamic'dir.

Değişken Tiplerini Öğrenmek

Değişkenin sahip olduğu veri tipini öğrenmek, doğruluğunu kontrol etmek ve program akışını yönlendirmek gibi nedenlerden dolayı değişkenin tipinin çalışma zamanında öğrenilmesine ihtiyaç duyulur. Bunun için kullanılabilecek 2 (iki) adet yardımcı metot bulunmaktadır. Bunlar; GetType ve TypeOf metotlarıdır.

GetType Metodu

Bir değişkenin tipinin öğrenilmesinde kullanılır. “Type” türünden sonuç üretmektedir.

TypeOf Metodu

Bir değişken tipinin başka bir değişken tipi ile karşılaştırılması ya da kontrol edilmesinde kullanılır.

Değişkenlerin Geçerlilik Bölgesi

Değişkenler tanımlanmış oldukları {…} (küme parantezi) bloğu içerisinde geçerlidirler. Değişkenlere tanımlı oldukları blok içerisinden ve alt bloklardan ulaşılabilirken üst bloklardan alt bloktaki değişkenlere erişilemez.

Tip Dönüşümleri (Casting)

Farklı tipteki veriler üzerinde çalışılırken karşılaştırma, mantıksal ve aritmetiksel işlemler için türler arası dönüşüm yapılması gerekir. Bu işleme Tip Dönüşümü (casting) adı verilir. Dört adet tip dönüşümü bulunmaktadır. Bunlar; Örtülü/Otomatik Dönüşüm (Implicit Conversions), Açık/Manuel Dönüşüm (Explicit Conversions), Kullanıcı Tanımlı Dönüşüm (User-defined conversions) ve Yardımcı Sınıflarla Dönüşüm (Conversions with helper classes)'dır.

Örtülü/Otomatik Dönüşüm (Implicit Conversions)

Dönüşecek değişkenin bellekte kapladığı alan, dönüştürülmek istenen değişken tipinin kapsadığı alandan daha küçük ise bu dönüşüm işlemi C# tarafından otomatik olarak gerçekleştirilir.

Açık/Manuel Dönüşüm (Explicit Conversions)

Dönüşecek değişkenin bellekte kapladığı alan, dönüştürülmek istenen değişken tipinin kapsadığı alandan daha büyük ise bu dönüşüm işlemi C# tarafından otomatik olarak gerçekleştirilemez. Dönüşecek değişkenin değerinin, dönüştürülmek istenen hedef veri tipinin değer aralığında olduğu biliniyor ise manuel dönüşüm işlemi gerçekleştirilerek bu dönüşüm sağlanır. Bunun için atama işlemi esnasında dönüştürülmek istenen değişkenin önüne parantez sembolü içerisinde değişken tipi ifadesi eklenir.

Parse Metodu

“String” veri tipindeki bir değişkenin değerini farklı bir değişken türüne dönüştürmek için kullanılır. “Parse” metodu kullanılırken dönüşecek değişkenin değerinin “null” olmaması ve değerinin hedef değişkenin değer aralığında olması gerekmektedir.

TryParse Metodu

İşlevi “Parse” komutu ile aynıdır. Tek farkı; Dönüşecek değişkenin değerinin “null” veya değer aralığı dışında olması ya da değişkenin farklı bir değişken tipine ait olması durumunda meydana gelecek hatada geriye 0 (sıfır) değeri döndürmesidir. “out” eki ile birlikte kullanılır ve sonuç “out” referanslı değişkene aktarılır.

Convert Sınıfı

Değişken tipleri arasında dönüşüm yapmak için kullanılan bir sınıftır. Convert sınıfının metotları ise şu şekildedir;

  • ToBase64String() Verilen bir string değeri Base64 şifreleme tipine dönüştürür.
  • FromBase64String() Base64 şifreleme tipinden “string” tipine dönüştürme yapar.
  • ToBoolean() Boolean tipine dönüştürme yapar.
  • ToByte() Byte tipine dönüştürme yapar.
  • ToChar() Char tipine dönüştürme yapar.
  • ToDateTime() Tarih ve zaman tipine dönüştürme yapar.
  • ToDecimal() Decimal tipine dönüştürme yapar.
  • ToDouble() Double tipine dönüştürme yapar.
  • ToInt16() Int16 tipine dönüştürme yapar.
  • ToInt32() Int32 tipine dönüştürme yapar.
  • ToInt64() Int64 tipine dönüştürme yapar.
  • ToSByte() SByte tipine dönüştürme yapar.
  • ToSingle() Single tipine dönüştürme yapar.
  • ToString() String tipine dönüştürme yapar.
  • ToUInt16() UInt16 tipine dönüştürme yapar.
  • ToUInt32() UInt32 tipine dönüştürme yapar.
  • ToUInt64() UInt64 tipine dönüştürme yapar.