Değişken Dönüşümleri

 

       Değişken türleriyle ilgili temel bilgileri ve hangi türde değişkenler olduğunu önceki makalelerimizde bahsetmiştik. Yine ufak bir özet geçmek gerekirse herhangi bir değişkeni tanımlayıp onu kullandığımızda sistem hafızadan tanımlanan değişken türünün boyutu kadar alan ayırır. Bazı durumlarda tanımladığımız değişken türünü farklı bir türe dönüştürmemiz veya farklı değişken tiplerindeki verilerle işlemler yapmamız gerekebilir. Bu gibi durumlar için izin verilen türler arasında dönüşümler yapabilirsiniz.

       Değişkenlerin tür dönülümler Açık (explicit) ve Örtülü (implicit) olmak üzere ikiye ayrılır.

Örtülü (kapalı) dönüşümler

       Örtülü dönüşümlerde dönüştürülecek veri türü hafızada daha fazla bir alan kaplayan hedef türe dönüştürülecektir. Bu yüzden dönüştürmek istediğiniz veri, diğer türe dönüştüğünde herhangi bir veri kaybı yaşamazsınız.

       Örtülü dönüşüm yapabileceğiniz türlerin listesi;

Tür

Dönüştürülebilecek Türler

Byte

short, ushort, int, uint, long, ulong, float, double veya decimal

Sbyte

short, int, long, float, double veya decimal

Int

long, float, double veya decimal

Uint

long, ulong, float, double veyadecimal

Short

int, long, float, double veya decimal

Ushort

int, uint, long, ulong, float, double veya decimal

Long

float, double veya decimal

Ulong

float, double veya decimal

Float

double

Char

ushort, int, uint, long, ulong, float, double veya decimal

 

Örnek Dönüşüm 

int sayi = 320223;
long buyukSayi = sayi;

Açık dönüşümler

       Açık dönüşümlerde, kapalı dönüşümde olduğu gibi doğrudan hedef türe eşitleyerek çalıştırmak istediğinizde uygulamada hata alırsınız. Bu tip dönüşümlerde hafızada kaplanan alan ve veri türleri farklılık gösterebileceğinden veri kaybı yaşanabilir. Kullanıcı veri dönüşümü yapmak istediğinde dönüştürmek istediği türü belirtmesi gerekmektedir. Burada belirtilmesinin sebebi kullanıcının veri kaybına uğrayabileceğinin farkında olmasıdır.

Tür

Dönüştürülebilecek Türler

Byte

sbyte veya char

Sbyte

byte, ushort, uint, ulong veya char

Int

sbyte, byte, short, ushort, uint, ulong veya char

Uint

sbyte, byte, short, ushort, int veya char

Short

sbyte, byte, ushort, uint, ulong veya char

Ushort

sbyte, byte, short veya char

Long

sbyte, byte, short, ushort, int, uint, ulong veya char

Ulong

sbyte, byte, short, ushort, int, uint, long veya char

Float

sbyte, byte, short, ushort, int, uint, long, ulong, char veya decimal

Double

sbyte, byte, short, ushort, int, uint, long, ulong, char, float veya decimal

Char

sbyte, byte veya short

Decimal

sbyte, byte, short, ushort, int, uint, long, ulong, char, float, veya double

 

Örnek Dönüşüm 

static void Main()
{
     double sayiDouble = 1234.7;
     int sayiInt;
     sayiInt = (int)sayiDouble;
     Console.WriteLine(sayıInt);
}

 

 

Add comment