TÜR DÖNÜŞÜMÜ NEDİR ?
Bazı durumlarda tanımladığımız nesnelerin başka türdenmiş gibi davranmalarını isteriz. Büyük çapta bir proje oluşturduğumuzda değişkenler çok fazla olacaktır ve farklı türden değişkenleri bir arada aynı işi yapmasını isteyebiliriz. Örneğin int türünden bir değişken ile byte türünden bir değişkenin toplanması gibi.
Normal şartlar altında farklı türlerdeki değişkenlerin matematiksel işleme tabi tutulması bazı istisnai durumlar haricinde mümkün değildir. Bu yüzden tür dönüşümü yapılmalı ve yapılacak işleme tabi tutulacak değişkenler aynı tür olmalıdır. Tür dönüşümü 2 şekilde yapılabilir; bilinçli ve bilinçsiz tür dönüşümü.
BİLİNÇSİZ TÜR DÖNÜŞÜMÜ
Derleyici tarafından bir değişkeni tanımladığımız türün dışında geçici olarak başka bir türe çevrilme işlemine bilinçsiz tür dönüşümü denir. Aşağıdaki örnekte detaylıca inceleyelim
int s = 10 ;
float a;
a = s
Console.Writeline (a)
Burada float veri tipine sahip a değişkenine int veri tipinde bir değer içeren s değişkenini atayabildik. Yukarıda verdiğimiz bilgilere göre bunun gerçekleşmemesi lazımdı. Bu durumu sağlayan derleyicinin kendi içerisinde yaptığı tür dönüşümüdür. Bilinçsiz yapılan bu tür dönüşümünde değişim asla kalıcı olmaz. Burada a değişkenine atanan s değeri belirli bir süre tür dönüşümüne uğramış olsa da programın başka bir yerinde s değişkenini çağırdığımızda değer tipi integer olarak gelecektir.
KÜÇÜK TÜRÜN BÜYÜK TÜRE DÖNÜŞTÜRÜLMESİ
Küçük tür ile büyük tür arasında oluşan boş bitler 0 ile beslenecektir yani her hangi bir veri kaybı olmayacaktır. Örneğin 2 int değerini toplayıp decimal veri tipinde bir değişkene atadığımızda sonuç değişmeyecektir.
BÜYÜK TÜRÜN KÜÇÜK TÜRE DÖNÜŞTÜRÜLMESİ
C# büyük türün küçük türe bilinçsiz dönüşümünü engellemiştir. Bunun sebebi farkedilmeden yapılan bu dönüşümlerde gerçekleşecek veri kaybının önlenmesidir.
BİLİNÇLİ TÜR DÖNÜŞÜMÜ
Bilinçli tür dönüşümleri genelde C# ın izin vermediği dönüşümleri sağlamak için yapılır.
TÜR DÖNÜŞTÜRME OPERATÖRÜ
Tür dönüştürme operatörleri de açılır kapanır parantezler arasına yazılır. Tür dönüşümünün kullanılması aşağıdaki gibidir.
byte b = 10 ;
int i = (byte) b ;
Console.Writeline(i) ;
Yukarıdaki program derlendirildiğinde ekanda 10 değerini görürüz. Bu işlemi bilinçsiz dönüşümle de yapabilirdik fakat daha büyük değerler girdiğimizde veya veri türleri değiştirldiğinde de aynı sonuçları alacağımızdan örnek olsun diye verdim.
Bazı durumlarda tanımladığımız nesnelerin başka türdenmiş gibi davranmalarını isteriz. Büyük çapta bir proje oluşturduğumuzda değişkenler çok fazla olacaktır ve farklı türden değişkenleri bir arada aynı işi yapmasını isteyebiliriz. Örneğin int türünden bir değişken ile byte türünden bir değişkenin toplanması gibi.
Normal şartlar altında farklı türlerdeki değişkenlerin matematiksel işleme tabi tutulması bazı istisnai durumlar haricinde mümkün değildir. Bu yüzden tür dönüşümü yapılmalı ve yapılacak işleme tabi tutulacak değişkenler aynı tür olmalıdır. Tür dönüşümü 2 şekilde yapılabilir; bilinçli ve bilinçsiz tür dönüşümü.
BİLİNÇSİZ TÜR DÖNÜŞÜMÜ
Derleyici tarafından bir değişkeni tanımladığımız türün dışında geçici olarak başka bir türe çevrilme işlemine bilinçsiz tür dönüşümü denir. Aşağıdaki örnekte detaylıca inceleyelim
int s = 10 ;
float a;
a = s
Console.Writeline (a)
Burada float veri tipine sahip a değişkenine int veri tipinde bir değer içeren s değişkenini atayabildik. Yukarıda verdiğimiz bilgilere göre bunun gerçekleşmemesi lazımdı. Bu durumu sağlayan derleyicinin kendi içerisinde yaptığı tür dönüşümüdür. Bilinçsiz yapılan bu tür dönüşümünde değişim asla kalıcı olmaz. Burada a değişkenine atanan s değeri belirli bir süre tür dönüşümüne uğramış olsa da programın başka bir yerinde s değişkenini çağırdığımızda değer tipi integer olarak gelecektir.
KÜÇÜK TÜRÜN BÜYÜK TÜRE DÖNÜŞTÜRÜLMESİ
Küçük tür ile büyük tür arasında oluşan boş bitler 0 ile beslenecektir yani her hangi bir veri kaybı olmayacaktır. Örneğin 2 int değerini toplayıp decimal veri tipinde bir değişkene atadığımızda sonuç değişmeyecektir.
BÜYÜK TÜRÜN KÜÇÜK TÜRE DÖNÜŞTÜRÜLMESİ
C# büyük türün küçük türe bilinçsiz dönüşümünü engellemiştir. Bunun sebebi farkedilmeden yapılan bu dönüşümlerde gerçekleşecek veri kaybının önlenmesidir.
BİLİNÇLİ TÜR DÖNÜŞÜMÜ
Bilinçli tür dönüşümleri genelde C# ın izin vermediği dönüşümleri sağlamak için yapılır.
TÜR DÖNÜŞTÜRME OPERATÖRÜ
Tür dönüştürme operatörleri de açılır kapanır parantezler arasına yazılır. Tür dönüşümünün kullanılması aşağıdaki gibidir.
byte b = 10 ;
int i = (byte) b ;
Console.Writeline(i) ;
Yukarıdaki program derlendirildiğinde ekanda 10 değerini görürüz. Bu işlemi bilinçsiz dönüşümle de yapabilirdik fakat daha büyük değerler girdiğimizde veya veri türleri değiştirldiğinde de aynı sonuçları alacağımızdan örnek olsun diye verdim.