22 Ağustos 2023 Salı

C#'DA TÜR DÖNÜŞÜMÜ


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.

Paylaş:

0 Yorumlar:

Yorum Gönder

İSTATİSTİK

KİTAP ÖNERİSİ