Bilinçli ve Bilinçsiz tür dönüşümü olarak ikiye ayrılır. Implicit ve Explicit de denir. Double Integera bilinçsizse "büyükten küçüğe" dönüşemez ama aşağıdaki 2. koddaki gibi i = Convert.ToInt32(d); kullanırsak, yani bilinçli olursa dönüşebilir.
1. Kod: Bilinçsiz Tür Dönüşümü
double d = 12.3;
Console.WriteLine(d);
int i = 5;
d = i;
Console.WriteLine(d);
Console.ReadLine();
2. Kod: Bilinçli Tür Dönüşümü
double d = 12.3;
Console.WriteLine(d);
int i = 5;
d = i;
i = Convert.ToInt32(d);
Console.WriteLine(i);
Console.ReadLine();
Başka veri tipleri deneyelim ve bilinçsiz yapılamayacak bir tür dönüşümü yapalım. Eğer bilinçsiz int i1 = f; olarak yaparsak hata görünecek ama aşağıdaki dönüşümden sonra hata gidecek.
float f = 100.15F;
int i1 = (int)f;
int i2 = Convert.ToInt32(f);
byte ay = Convert.ToByte(Console.ReadLine());
Console.ReadLine();
Şimdi birde Int.Parse() bilinçli dönüştürme işlemine bakalım. Parse içerisine string alıp integera dönüştürür.
string strNumber = "10";
int i = int.Parse(strNumber);
Console.WriteLine(i);
Console.ReadLine();
Başlat dediğimizde ekrana 10 olarak yazdıracak ama 10K ya da 10,2 yazsaydık çalışmayacaktı ve aşağıdaki koddaki gibi bilinçli dönüştürme işlemi yapmamız gerekecek ve bize System.String olarak yazdıracak.
string strNumber = "10,2";
Console.WriteLine(strNumber.GetType());
Console.ReadLine();
Birde int.TryParse bilinçli dönüştürme işlemini yapalım. Eğer 10K dersek bize hata verip 0 değeri dönecek ve bool kullandığımız için False diyecek ama aşağıdaki gibi olursa hata vermeyecek ve True diyecek.
int result;
string strNumber = "10";
bool olduMu = int.TryParse(strNumber, out result);
Console.WriteLine("Sonuç Değer : " + result);
Console.WriteLine("Oldu Mu? : " + olduMu);
Console.ReadLine();
İşte bu kadar.
0 Yorumlar:
Yorum Gönder