24 Mayıs 2013 Cuma

C# - Bilinçsiz(Implicit) Tür Dönüşümleri



- Derleyici tarafından bir değişkeni tanımladığımız türün dışın geçici olarak başka bir türe çevirmeye bilinçsiz tür dönüşümü denir.
- Bilinçsiz yapılan tür dönüşümlerinde bir nesnenin türü asla kalıcı olarak değiştirilmez.
- Bilinçsiz yapılan tür dönüşümleri 2 şekilde gerçekleştirilebilir.

a.Küçük Türün Büyük Türe Dönüştürülmesi: Küçük türler büyük türlere dönüstürülürken fazla olan bitler yani büyük türden dolayi eklenen bitler sıfırla beslenirler. Küçük türün yüksek anlamli bitlerinin sifirla beslenmesi degiskendeki degeri değiştirmediği için tür dönüşümünde herhangi bir veri kaybı olmaz

b.Büyük Türün Küçük Türe Dönüştürülmesi: Büyük türlerin küçük türlere otomatik dönüştürülmesi C#’da yasaklanmıştır. Eğer bu tür bir dönüstürme(bilinçsiz olarak) mümkün olsaydı bir takim veri kayıpları yaşanacaktır.

Aşağıda bilinçsiz tür dönüşümüne örnek verilmiştir.
using System;
using System.Collections.Generic;
using System.Linq;

using System.Text;


namespace BilincsiTurDonusumu

{

    class Program

    {

        static void Main(string[] args)

        {

 int a = 5;


 float b = 3;

             

//Altaki kod blogu calismayacaktır. Cunku buyuk degerli (float) b
//kucuk degerli (int) a ya atanmaya calisilmistir.
//a = b;

b = a;


Console.WriteLine(b);


Console.Read();
}

}

}

Hiç yorum yok: