Değişken Dönüşümleri
Yazdığımız uygulamalarda değişkenlerle işlemler yapıyoruz, sonuçlara ulaşıyoruz. Peki ya 2 arabayla 1 bisikleti toplamamız gerekirse? Farklı veri türlerini, birbirlerine nasıl dönüştüreceğinizi anla..
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);
}
