System.Convert Sınıfı ile Tür Dönüşümü

System.Convert sınıfı ile tür dönüşümüne, en basit tabiriyle şu sebep ile ihtiyacımız olacak;

Örneğin, konsola kullanıcıdan bir hesaplama yapmak üzere bir sayı girmesini istedik. Kullanıcının konsola girdiği sayı string olarak alınacak. Biz kullanıcıdan aldığımız bu sayı ile işlem yapacağımız için sayıyı integer a çevirmemiz gerekir. Bu gibi durumlarda System.Convert sınıfı kullanılabilir.

Aşağıdaki tabloda System.Convert sınıfının çeşitli metotları mevcuttur.


System.Convert sınıfına örnek bir program yazalım. Aşağıdaki kodları kopyalayıp Visual Studio ya yapıştırarak sonuçları kendinizde gözlemleyebilirsiniz. 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace dort_islem
{
    class Program
    {
        static void Main(string[] args)
        {
            //kullanıcıdan alınan sayılarla dört işlem yaptıran ve sonuçlarını ekrana yazdıran program

            int a, b;
            int toplama, cikarma, carpma;
            float bolme;

            Console.Write("Birinci sayıyı giriniz:");
            a = Convert.ToInt32(Console.ReadLine());

            Console.Write("İkinci sayıyı giriniz:");
            b = Convert.ToInt32(Console.ReadLine());

            toplama = a + b;
            Console.WriteLine("Toplama={0}", toplama);

            cikarma = a - b;
            Console.WriteLine("Çıkarma={0}",cikarma);

            carpma = a * b;
            Console.WriteLine("Çarpma={0}", carpma);

            bolme = a / b;
            Console.WriteLine("Bölme={0}", bolme);

            Console.ReadLine();
        }
    }
}

Konu ile ilgili eğitim vidyosu


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

Tür dönüşümü nedir?

Farklı türden değişkenlerin aynı ifade içinde işlem görebilmesi için tür dönüşümleri kullanılır. C# ta iki tür, tür dönüşümü vardır. Bunlar;

1.Bilinçli Tür Dönüşümleri(explicit)
2.Biliçsiz Tür Dönüşümleri(implicit)

1.Bilinçsiz Tür Dönüşümü

Derleyicinin, değişkeni tanımladığımız türün dışında geçici olarak başka bir türe çevirmesine biliçsiz tür dönüşümü denir. Bilinçsiz yapılan tür dönüşümlerinde bir nesnenin türü kalıcı olarak değiştirilmez. Bilinçsiz tür dünüşümleri, büyük türün küçük türe çevrilmesi ve küçük türün büyük türe çevrilmesi şeklinde iki türlüdür. Fakat veri kayıplarına sebep olduğu için C# ta büyük türün küçük türe bilinçsiz olarak dönüşümü yasaklanmıştır.

Küçük türün büyük türe dönüştürülmesi
Küçük tür büyük türe çevrilirken boş olan bitleri sıfır ile beslenir. Bitlerin sıfırla beslenmesi değişkendeki değeri değiştirmediği için tür dönüşümünde herhangi bir veri kaybı olmaz.

Örnek:

static void Main()
{
     byte a=5;
     int b;

     b=a;
     Console.WriteLine(b);

     float f=5f;
     double d;

     d=f;
     Console.WriteLine(d);

     char c='h';
     decimal m;

     m=c;
     Console.WriteLine(m);
}

Not: Char türden ' c ' nesnesi decimale çevrilirken ekranda ' c ' karakterinin Unicode karşılığı görülür.

Genel kullanım şekli aşağıdaki gibi olmaktadır.

static void Main()
{
       int a=45;
       short  b=11;
       byte c=5;
       long sonuc;
  
       sonuc=a+b+c;
       Console.WriteLine(sonuc);
}

Aşağıdaki tabloda C# ta bilinçsiz olarak tür dönüşümü yapabileceğimiz veri türleri mevcuttur.


2.Bilinçli Tür Dönüşümü

Bilinçli tür dünüşümüde kendi içinde küçük türün büyük türe ve büyük türün küçük türe çevirilmesi olarak ikiye ayrılır. Küçük türün büyük türe çevirilmesi bilinçsiz tür dönüşümleri ile aynıdır. Burada dikkat edilmesi gereken nokta bilinçli tür dönüşümünün, derleyicinin büyük türün küçük türe çevirilmesine izin vermediği durumlarda kullanılmasıdır.

static void Main()
{
     int i=255;
     byte b=(byte)i;
     Console.WriteLine(b);
}

Not: Bu program hatasız çalışmaktadır. Fakat ' i ' değişkeninin değeri 255 ten yüksek olsaydı programımız hata verecekti. Çünkü byte veri türü 0-255 arasında değerler almaktadır.

Translate

Popular Posts

Popular Posts