Bu girdide C#’da (Csharp) tür dönüşüm şekilleri hakkında örnekler üzerinden bilgi veriyor olacağım. Projenin sonunda System.Convert sınıfı ile veri dönüşüm işlemleri ile ilgili ip uçları bulabilirsiniz.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace turDonusumleri { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //Tur donusumleri bilincsiz (implicit), bilincli (explicit) olmak uzere 2 ye ayrilir. //Bilincsiz (implicit) tur donusumu// int x = 25; float y; y = x; /* Yukarıdaki örnekte önce int veri türü olarak belirlediğimiz x değişkenini, float veri türü olarak belirlediğimiz y değişkenine eşitliyoruz. Yani x değişkeni geçici olarak y değişkenine atanmıştır. Burada unutulmaması gereken bu dönüşümün kalıcı olmadığıdır. Yoksa projemizin ilerleyen kısımlarında oldukça karışık durumlar söz konusu olabilir. */ int a = 10; byte b = 12; short c = 14; double sonuc; sonuc = a + b + c; textBox1.Text = sonuc.ToString(); //Output 36 olacaktir. /* Bazı türler arasında ise tür dönüşümü yapılmasına izin verilmez. Herhangi bir türden char türüne bool , decimal ve double türünden herhangi bir türe Aşağıdaki örneklerde birkaç hatalı tür dönüşümüne örnek verilmiştir. Orn: bool a; int b = a; // hatalı dönüşüm double c = 1.25; int d = c; // hatalı dönüşüm byte f = 125; char g = f; // hatalı dönüşüm */ } private void button2_Click(object sender, EventArgs e) { /* Bilincli (explicit) tur donusumu Tür dönüşünün kendi kontrolünüz altında yapılma işlemidir. Burada döünüşüm yapmak istediğiniz türü parantez içinde yazmanız gerekir. Örnek: */ int a = 50; double b = (double)a; /* * a degiskenindeki degeri double'a donusturup double b degiskenine atiyoruz. * Bu şekilde bir tür dönüşümü yaptığımızda bir veri kaybı olmayacaktır. * Çünkü a değişkenin değeri, aynı zamanda double veri türüne de uygundur. * Bazı durumlarda uygun olmayan veri türleri kullanıldığında veri kayıpları olacaktır. */ double c = 50.345; int d = (int)a; textBox2.Text = d.ToString(); /* Yukarıdaki örnekte a değişkeninin değeri double olduğundan ondalık sayılar için uygundur. Ancak int veri türünde ondalık sayılar kullanılamayacağı için virgülden sonraki basamaklar veri kaybına uğramıştır. Bu tür veri kayıplarında derleyici hata mesajı vermeyecektir. Bu da bazı şeyleri gözden kaçırmamıza sebep olabilir. Bunu önlemek ve derleyicinin hata mesajını vermesini istersek checked komutundan yararlanabiliriz. Checked komutu derleyicinin, veri kayıplarının olabileceği durumlarda hata mesajı vermesini sağlayacaktır. */ } private void button3_Click(object sender, EventArgs e) { //Checked komutu int a = 260; byte b; checked { b = (byte)a; //Derleyici bu kisimda hata verecektir. } } private void button4_Click(object sender, EventArgs e) { Single sayi = 123.456f; textBox4.Text = sayi.ToString(); //ya da Single sayi2 = 123.456f; string cevir = sayi2.ToString(); textBox5.Text = cevir; } private void button5_Click(object sender, EventArgs e) { int a; string a1 = "345"; a = Convert.ToInt32(a1); // a = 345 olacaktır Single b; string b1 = "1.765"; b = Convert.ToSingle(b1); // b = 1.765 olacaktır. int c = 123; int son; string son1; son = a + c; son1 = Convert.ToString(son); // son1 = "468" olacaktır } private void button6_Click(object sender, EventArgs e) { /* Parse() metodu, Convert metodunun tersi gibi çalışır.Genellikle string bilgileri sayısal bilgilere dönüştürmek için kullanılır.Daha çok TextBox içindeki bilgileri sayısal bilgilere dönüştürmede kullanılır. Örnek : Projemizde 3 adet TextBox ve 1 adet Button bulunmaktadır.Button6 tıklandığında TextBox8 ve TextBox9 içindeki sayılar toplanıp TextBox10 içine yazılacaktır.Aşağıdaki kodlar Button6 içine yazılmıştır.*/ string a = textBox8.Text; string b = textBox9.Text; int a1 = System.Int16.Parse(a); int b1 = System.Int16.Parse(b); int toplam; toplam = a1 + b1; textBox10.Text = toplam.ToString(); } } }
Proje dosyasına buradan ulaşabilirsiniz.
Microsoft’un C# kılavuzuna da buradan ulaşabilirsiniz.