C#Programlama

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

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.

Serdar Kurt

Merhaba, 1986 Ankara doğumluyum. Sakarya Üniversitesi Bilgisayar Programcılığı mezunuyum. Şu an özel bir şirkette Security Engineer pozisyonunda görev yapıyorum. Bilişim Teknolojileri alanında kendimi geliştirmeye devam ediyorum.

İlgili Makaleler

Abone ol
Bildir
guest
0 Yorum
Satır İçi Geri Bildirimler
Tüm yorumları görüntüle
Başa dön tuşu

Reklam Engelleyici Algılandı

Bana destek olmak için lütfen reklam engelleyicinizi devre dışı bırakınız ya da bu siteyi izin verilenler listesine ekleyiniz.