- Byte türünde bir değişken, int türünde bir değişkene dönüştürülürken, byte'ın alabileceği değer aralıkları, int'dan küçük olduğu için C# derleyicisi bizim için gerekli dönüşümü kendisi yapar. Bu duruma belirsiz (implicit) dönüşüm denir.
- Tam tersi bir durumda bizim yapmak zorunda olduğumuz dönüşümlere ise explicit dönüşüm denir.
- Bunların yanı sıra Microsoft .Net'de parse yöntemi kullanılarak da veri tipi dönüşümü sağlanabilir.
Veri tipi dönüşümlerine örnek:
public class Ornek
{
public static void Run()
{
byte a = 255;
byte b = 255;
byte d = a + b;
int e = Convert.ToInt32(d); //explicit dönüşüm
int c = a + b; // a ve b implicit dönüşüm ile int'a çevrilmiştir.
//a ve b byte olduğu halde sonuç int cinsinden çıkıyor
// burada derleyici a'yı ve b'yi int'e çevirerek topluyor
// burada derleyici a ve b'yi short'a otomatik çevirmez, toplamı parse yöntemi ile kendimiz çevirmek zorunda kalıyoruz
short d = (short)(a + b); //(a+b) parse yöntemi ile short' çevrilmiştir.
}
- Explicit dönüşümde kullanılan Convert.ToInt16( ) dönüşümünün short'u, Convert.ToInt64( ) dönüşümünün ise long'u temsil ettiği unutulmamalıdır.
- Bir messageBox'ta gösterilmesi istenilen bir ifade mutlaka String olmalıdır. Değilse mutlaka String'e dönüştürülmelidir.
- Aşağıdaki kodda ekrana sonuç 0 olarak yazdırılır çünkü C#
buradaki tüm sayıları int’a
dönüştürerek sonucu da int olarak
çıkartır. Virgülden sonra kalanlar atılır.
MessageBox.Show(((4 - 2) / 3).ToString());
- Aşağıda sonuç 0,666666666666667 olarak çıkar. C# kodu bu sayıyı double kabul etti ve virgülden sonra 15 hane duyarlılıkla çalıştırdı.
MessageBox.Show(((4 - 2) / 3.0).ToString());
- Aşağıdaki kodda ise sonuç 0,6666666666666666666666666667 çıktı. 28 hane duyarlılıkta. 3.0M yazdığımız için C# int bölüp decimal veri tipi sonuç verdi.
MessageBox.Show(((4 - 2) / 3.0M).ToString());
Hiç yorum yok:
Yorum Gönder