Tür dönüşümü
Bilinçsiz Tür Dönüşümü
C#'ta düşük kapasiteli bir değişken, sabit ya da değişken ve sabitlerden oluşan matematiksel ifade daha yüksek kapasiteli bir değişkene atanabilir. Buna bilinçsiz tür dönüşümü denir, bunun için herhangi bir özel kod gerekmez.
sing System;
class TurDonusumu
{
static void Main()
{
byte a=5;
short b=10;
sbyte c=30;
int d=a+b+c;
string e="deneme";
char f='k';
object g=e+f+d;
long h=d;
float i=h;
double j=i;
double k=12.5f;
Console.WriteLine(j+k);
}
}
Bilinçsiz tür dönüşümüyle ilgili ilginç bir durum söz konusudur. char türünü kendisinden daha kapasiteli bir sayısal türe bilinçsiz olarak dönüştürebiliriz. Bu durumda ilgili karakterin Unicode karşılığı ilgili sayısal değişkene atanacaktır.
using System;
class TurDonusumu
{
static void Main()
{
char a='h';
int b=a;
Console.WriteLine(b);
}
}
Bilinçli tür dönüşümü
Bilinçli tür dönüşümü genellikle derleyicinin izin vermediği durumlarda kullanılır. Bilinçli tür dönüşümüyle küçük türün büyük türe dönüştürülmesi sağlanabilse de aslında bu gereksizdir, çünkü aynı şeyi bilinçsiz tür dönüşümüyle de yapabilirdik. Aşağıdaki programda bilinçli tür dönüşümü gerçekleştirilmektedir.
using System;
class TurDonusumu
{
static void Main()
{
int a=5;
byte b=(byte)a;
Console.WriteLine(b);
}
}
Programımızda da görebileceğiniz gibi (byte)a ifadesi, a değişkeninin byte hâlini tuttu. Aşağıdaki kod parçacığı bilinçli tür dönüşümünü anlatmaktadır.
(byte)r10net
Buradaki (byte) hedef tür
r10net ise değişkenimizin ismidir.