C#

C# Ders4- Tür Dönüşümleri

Her programlama dilinde birçok kez değişkenlerin tiplerinin dönüşümlerine ihtiyaç duyulur. Mesela (“5” ve “2”) tipindeki string ifadelere matematiksel işlemleri uygulamayamazsınız. İşte bu noktada tiplerinin değişmesi gerekir. Tip dönüşümlerinde bazı durumlarda veri kaybı gerçekleşebilir, dönüşümü yapılan değişkenin tuttuğu değer dönüştürülecek türün kapasitesinden büyükse veri kaybı gerçekleşir. C#’da tip dönüşümü için üç metot vardır:

  • degisken.ToString()
  • Parse Sınıfı
  • Convert Sınıfı

Convert Sınıfı

System isim alanının altındaki Convert sınıfı içinde tür dönüşümü yapabileceğimiz birçok metot bulunur. Bu metotlarla bir türden diğerine çevirme işlemi yapabiliriz. Ancak bunun için değişken türlerinin CTS karşılıklarını bilmeliyiz. Değişken türleri ve CTS karşılıkları aşağıdaki tabloda listelenmiştir.

cts karşılıkları

string degisken = "12345";
int sayi = Convert.ToInt32(degisken);

Tür dönüşümleri program içerisinde kullanılırken veri kayıplarının olmamasına dikkat edilmelidir. Örneğin double ve float türündeki verileri integer’a dönüştürme yaparken virgülden sonraki kısımlar yok olacaktır. Bu da istenmeyen bir durumdur.

Bu yüzden bir türdeki veri tipi ancak kendi türünden veri tipi ile işlem yapılmalıdır. Aksini zaten programda kabul etmez. Aşağıdaki program hata verecektir.

float a = 12.5f;
int b = 12;
int sonuc = a * b;

Verinin float’tan int’a dolaylı olarak dönüştürülemediği hatası veriliyor.

float a = 10.5f; // Ondalik sayının float olduğunu anlamak için f kullanılır
float b = 12f;
float sonuc = a + b; // Sonuç = 22,5
// eğer bu sonuç int’a dönüştürülürse virgülden sonraki ondalıklı ifade kaybolur.
int sonuc1 = Convert.ToInt32(sonuc); // sonuc 22 dir

Parse Metodu

Değişik türdeki veriler Convert sınıfının ilgili metotları ile çevrilirken istenildiği gibi biçimlendirilebiliyor. Örneğin bir textbox’a yazıp biçimlendirdiğimiz string bilgiyi sayısal bilgiye dönüştürmek isteyebiliriz. Bu dönüştürme Int16 ve Int32 gibi yapıların Parse( ) metodları ile yapılabilir.

string degis="123";
int sayi1 = int.Parse(degis);

int tipine kısaca bu şekilde tür değişimi yapabilirsiniz ya da System sınıfını kullanarak int’ın değişik tiplerine de dönüşüm yapabilirsiniz.

string degisken = "123,456";
Single sayi = System.Single.Parse(degisken);
textBox1.Text = Convert.ToString(sayi);

degisken.ToString()

Yazdığımız programda değerler metinsel olarak kullanılacak ise kısaca .ToString() ifadesiyle değişkenin tipini string yapabiliriz. Örneğin bir hesaplamanın sonuç ekrana yazdırılacaksa string türüne dönüşüm yapılmalıdır.

int a = 15;
int b = 25;
int sonuc = a + b;
MessageBox.Show(sonuc.ToString());
//YADA
MessageBox.Show(Convert.ToString(sonuc));

Bu örnekte iki sayıyı MessageBox ile ekrana yazdırma işlemini yaptırdık. Böylece tip dönüşümlerini yapabilirsiniz.

hakkımdaki her şeyi bu blogda bulabilirsin. Haydi sende bir göz gezdirmeye ne dersin?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir