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

Tür dönüşümü nedir?

Farklı türden değişkenlerin aynı ifade içinde işlem görebilmesi için tür dönüşümleri kullanılır. C# ta iki tür, tür dönüşümü vardır. Bunlar;

1.Bilinçli Tür Dönüşümleri(explicit)
2.Biliçsiz Tür Dönüşümleri(implicit)

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

Derleyicinin, değişkeni tanımladığımız türün dışında geçici olarak başka bir türe çevirmesine biliçsiz tür dönüşümü denir. Bilinçsiz yapılan tür dönüşümlerinde bir nesnenin türü kalıcı olarak değiştirilmez. Bilinçsiz tür dünüşümleri, büyük türün küçük türe çevrilmesi ve küçük türün büyük türe çevrilmesi şeklinde iki türlüdür. Fakat veri kayıplarına sebep olduğu için C# ta büyük türün küçük türe bilinçsiz olarak dönüşümü yasaklanmıştır.

Küçük türün büyük türe dönüştürülmesi
Küçük tür büyük türe çevrilirken boş olan bitleri sıfır ile beslenir. Bitlerin sıfırla beslenmesi değişkendeki değeri değiştirmediği için tür dönüşümünde herhangi bir veri kaybı olmaz.

Örnek:

static void Main()
{
     byte a=5;
     int b;

     b=a;
     Console.WriteLine(b);

     float f=5f;
     double d;

     d=f;
     Console.WriteLine(d);

     char c='h';
     decimal m;

     m=c;
     Console.WriteLine(m);
}

Not: Char türden ' c ' nesnesi decimale çevrilirken ekranda ' c ' karakterinin Unicode karşılığı görülür.

Genel kullanım şekli aşağıdaki gibi olmaktadır.

static void Main()
{
       int a=45;
       short  b=11;
       byte c=5;
       long sonuc;
  
       sonuc=a+b+c;
       Console.WriteLine(sonuc);
}

Aşağıdaki tabloda C# ta bilinçsiz olarak tür dönüşümü yapabileceğimiz veri türleri mevcuttur.


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

Bilinçli tür dünüşümüde kendi içinde küçük türün büyük türe ve büyük türün küçük türe çevirilmesi olarak ikiye ayrılır. Küçük türün büyük türe çevirilmesi bilinçsiz tür dönüşümleri ile aynıdır. Burada dikkat edilmesi gereken nokta bilinçli tür dönüşümünün, derleyicinin büyük türün küçük türe çevirilmesine izin vermediği durumlarda kullanılmasıdır.

static void Main()
{
     int i=255;
     byte b=(byte)i;
     Console.WriteLine(b);
}

Not: Bu program hatasız çalışmaktadır. Fakat ' i ' değişkeninin değeri 255 ten yüksek olsaydı programımız hata verecekti. Çünkü byte veri türü 0-255 arasında değerler almaktadır.

0 Response to "C# Tür Dönüşümleri"

Yorum Gönder

Popular Posts

Popular Posts