C# Tür Dönüşümü İşlemleri

C# Tür Dönüşümü

C# tür dönüşümü işlemleri bazı durumlarda tanımladığımızı değişkenlerin farklı bir türdenmiş gibi davranmasını isteriz. Buna en bariz örnek ise biri int bir short olan iki farklı türdeki veriyi toplama işlemine sokmak için tür dönüşümüne ihtiyaç duyarız. Nasıl ki 1 elma ile 2 armut toplanmaz, int ve short tipindeki değişkenlerde tür dönüşümü yapılmadan toplanamaz. Türn dönüşümü iki farklı şekilde olur.

Bilinçsiz Tür Dönüşümü

Derleyici tarafından bir değişkeni tanımladığımız tür dışında geçici olarak başka bir türe çevirme işlemine denir. Örnek ile gösterecek olursak;

int s=10;

float a;

a=s;

Burada int türündeki s değişkeni float türündeki a değişkenine atanıyor. Ancak bu işlemin gerçekleşmesi için s değişkeni geçici olarak float türüne çevriliyor, atama yapılıyor ve s değişkeni tekrar kendi türü olan int türüne çevrilerek işlemler devam ediyor. Bu bizim müdahalemiz olmadan derleyici tarafından otomatik olarak yapılmaktadır.

Bilinçli Tür Dönüşümü

Bilinçli tür dönüşümü genellikle derleyici tarafından otomatik olarak yapılmayan ve program çalıştırıldığı takdirde hata oluşmasına sebep olan durumlarda yapılır. Tür dönüşümünü yapabilmemiz için tür dönüştürücü operatörünü kullanmamız gerekir. Örnek ile gösterecek olursak;

byte b =10;

int i=(int)b;

Yukarıdaki örnekte de görüldüğü üzere mantık gayet basittir. Dönüştürülmek istenen veri tipi hangisi ise o veri tipi dönüştürülecek değişkenin önünde parantez içinde yazılır.

Tür dönüşümlerinde dikkat edilmesi gereken bir husus vardır. O da dönüştürülecek tür dönüşecek türden küçük mü büyük mü olduğudur. Küçüklük büyüklük kavramı hafızada kapladığı byte kapasitedir.

Küçük Türün Büyük Türe Dönüştürülmesi

Küçük türden büyük türe dönüştürülürken fazla olan bitler yani büyük türden dolayı eklenen bitler sıfırla beslenir. Sıfırla beslenen bitler değişkendeki değeri değiştirmediği için herhangi bir veri kaybı olması söz konusu değildir. Bu dönüşüm bilinçsiz ya da bilinçli olarak iki türlü de yapılabilir. Örnek olarak göstermek gerekirse;

byte a=20;

int b=a; ya da int b=(int)a;

Büyük Türün Küçük Türe Dönüştürülmesi

Büyük türden küçük türe sadece bilinçli olarak yapılabilmektedir. Çünkü bu tarz dönüşümlerde veri kaybı durumu söz konusu olduğu için C# dili bunu derleyicinin otomatik yapmasına izin vermemiştir. Peki veri kaybının oluşmasının sebebi nedir? Örnekle gösterecek olursak;

int i=256;

byte b;

Bu sayıyı ikili tabandaki gösterimini yazalım.

256 => 00000001 00000000

Görüldüğü gibi 256 iki byte’lık hafıza kaplamaktadır. Eğer burada tür dönüşümünü yapacak olursak,

b=(byte)i;

b değişkeni sadece ilk byte’ın değerini alır ve buda 0’a denk gelmektedir. Görüldüğü gibi değerin kendisi 256 iken dönüşüm sonucu b değişkenine 0 değeri atandı.

Büyük türden küçük türe kayıpsız bir dönüşüme örnek vermek gerekirse;

int i=25;

byte b=(byte)i;

Burada herhangi bir kayıp söz konusu değildir. Çünkü 25 sayısı byte türünün alabileceği sınırlar içindedir.

C# tür dönüşümü işlemlerini gördük. Daha fazla bilgi içeriği için aşağıdaki linke tıklayarak C# kategorisi altında daha bir çok içeriğe ulaşarak C# bilginizi artırabilirsiniz. Ayrıca aşağıdaki Instagram ve Twitter linklerine tıklayarak bizi Instagram ve Twtitter üzerinden de takip edebilirsiniz.

https://yazilimdelisi.com/category/programlama-dilleri/c-sharp/

Sosyal Medya Hesaplarımız

instagram logo
twitter logo

Son Eklenen Yazılar