Tip Dönüşümleri

Tip Dönüşümü Nedir?

Her veri tipinin kendi içinde yapılabilecek birçok işlem vardır. Aynı veri tipleriyle işlem yaptığımız gibi bazı durumlarda farklı veri tipleriyle de işlem yapmak isteyebiliriz. Normalde farklı veri tipleri arasında işlem yapılmazken işlem yapılması gereken durumlarda veri tipinin dönüştürülmesi gerekmektedir.

Tip dönüşümleri, yapılma şekline göre ikiye ayrılır. Bunlar; bilinçli tip dönüşümü ve bilinçsiz tipdönüşümüdür. Bazı kaynaklarda bilinçli dönüşüm için açık dönüşüm, bilinçsiz dönüşüm için de kapalı dönüşüm ifadesini görebilirsiniz. Aynı manaya gelirler.

Bilinçsiz(Implicit) Tip Dönüşümü

Herhangi bir operatör kullanmadan derleyicinin kendisinin yaptığı dönüşüme bilinçsiz dönüşüm denir. Bilinçsiz dönüşümde küçük bellekli bir veri tipinden büyük bellekli bir veri tipine dönüşüm yapılabilirken büyük bellekli veri tipinden küçük bellekli veri tipine dönüşüm yapılamaz. Bu durumda hata alırız.

Veri tiplerinin hepsinin birbirine dönüşümü mümkün değildir. Büyük veri tipleri küçük veri tiplerine dönüştürülürken veri kaybı olacağından derleyici hata verir. Küçük veri tipleri büyük veri tiplerine dönüştürülürken; büyük tipten dolayı eklenen fazla bitler sıfır ile doldurulur. Bu durum değişken içinde bulunan veriyi etkilemeyeceği için veri kaybı olmaz.

Bilinçli(Explicit) Tip Dönüşümü

Bilinçsiz dönüşümde veri tipleri uygun veri tiplerine derleyici tarafından dönüştürülebiliyordu. Ama her veri tipi her veri tipine dönüştürülemiyordu. Büyük veri tiplerini küçük veri tiplerine dönüştürmeye çalıştığımız zaman hata ile karşılaşıyorduk. Bazı durumlarda büyük veri tiplerini küçük veri tiplerine dönüştürmek isteyebiliriz. O zaman yapmamız gereken bir dönüştürme operatörü kullanmaktır. Bilinçli tip dönüşümünde, kendisine dönüştürülmesi amaçlanan veri tipi parantez içine alınır ve yanına değişken ya da sabit değer yazılır. Bu durumda veri kaybını göze almış ve verimizi istediğimiz türe dönüştürebilmiş olacağız. Tabi bu ancak sayısal değerler içinde yapılabilir.

Küçük veri tipindeki veriyi büyük veri tipine bilinçli dönüştürmenin, bilinçsiz dönüştürmeden bir farkı yoktur. Bir dönüşüm operatörü kullansak da kullanmasak da aynı sonucu verecektir.

Dönüşüm Metotları

ToString() Metodu: ToString metodu ile herhangi bir veri tipi string veri tipine dönüştürülebilir. Ekrana basılacak değer string veri tipinde olması gerektiği için bu metot çokça kullanılır. Yukarıdaki kodları tekrar incelediğinizde label’ a yazdırdığımız tüm değerleri önce string’ e çevirdiğimizi görebilirsiniz. degiskenAdi.ToString() şeklinde yazarak dönüşüm yapabilirsiniz.

Parse Metodu: Parse metodu ile string veri tipi herhangi bir veri tipine dönüştürebilir. hedefVeriTipi.Parse(degiskenAdi) şeklinde yazarak dönüşüm yapabilirsiniz.

Convert Metotları: Önceki konularda anlatılan C# dönüştürme metotlarının haricinde .NET sınıf kütüphanesindeki özel metotlar da tip dönüştürme için kullanılır. Convert isimli bu sınıf, dönüşümün anlamlı olacağı tüm veri tiplerinin dönüştürülmesinde kullanılabilir.