C# Bilinçli Tür Dönüşümü

By Burak TUNGUT - 21.11.2012 - Kategori C#

Bu makalemiz de Bilinçli Tür Dönüşümleri konusunu, checked ve unchecked anahtar kelimeleriyle tanışacağız.
Bilinçsiz Tür Dönüşümleri hakkında yazdığımız makaleye ve yaptığımız örneklere buradan ulaşabilirsiniz.

Explicit yani Bilinçli tür dönüşümleri, genellikle derleyicinin ve IDE'nin izin vermediği durumlarda kullandığımız bir yapıdır ve olması muhtemel veri kayıpları söz konusu olduğu için ise son derece dikkatli bir şekilde yapılmaları gerekir.
Tıpkı bir önceki konuda olduğu gibi bilinçli tür dönüşümlerinide Büyükten Küçüğe ve Küçükten Büyüğe dönüşüm şeklinde ikiye ayırabiliriz fakat, Büyükten Küçüğe yapılan tür dönüşümleri bilinçsiz tür dönüşümleri ile tıpatıp aynı olduğu için bu konu üzerinde fazla vakit harcamayacağız.

Öncelikle tür dönüşümü yapmak için kullancağımız syntax yapısını inceleyelim,

            [DönüştürülecekTip] [DeğişkenAdı];
            (int) sayi;
            (byte) _byte;
            (decimal) _ondalik;

Bir önceki konuda yaptığımız tipik dönüşümü tekrarlayalım ve yine bir byte veriyi integer veriye çevirelim,
 

namespace Makale.Test
{
    class Program
    {
        static void Main(string[] args)
        {
            byte _byte = 350;
            int _int = (byte)_byte;

            Console.WriteLine(_int);
        }
    }
}


Ekran çıktımız 50 şeklinde olacaktır. Burada değinmek istediğim bir konu var. Bir önceki makaledede aynı örneği yaptık ama (byte) gibi bir ifade yani bilinçli tür dönüşüm ifadesi kullanmadık ve yine aynı sonucu elde ettik çünkü byte veri türü, int veri türünden daha küçüktü ve dönüşümünde herhangi bir sakınca yoktu.

Devamı

C# Bilinçsiz Tür Dönüşümü

By Burak TUNGUT - 21.11.2012 - Kategori C#

Bu makalemiz ile C# da bilinçsiz tür dönüşümlerine değinip, bol bol örnek yapacağız.
Aynı zaman da tür dönüşümü mantığına değinip, C# dilinin type safety anlayışına da değinmiş olacağız.
Bir sonraki makalemiz ile bilinçli tür dönüşümlerini de tanıyarak tür dönüşümleri konusunu bitirmiş bulunacağız.

Bu makalemiz ile C# da bilinçsiz tür dönüşümlerine değinip, bol bol örnek yapacağız.
Aynı zaman da tür dönüşümü mantığına değinip, C# dilinin type safety anlayışına da değinmiş olacağız.

Bir sonraki makalemiz ile bilinçli tür dönüşümlerini de tanıyarak tür dönüşümleri konusunu bitirmiş bulunacağız.
 

Ağustos'un son gününde, sıcak bir Antalya gününden yine herkese Merhabalar :)
Karnımız tok, kulaklığın sesi iyi derecede, kıpır kıpır bir şarkı çalıyor. Sanırım herşey olması gerektiği gibi. O zaman bügünkü konumuza artık başlayalım. Bu konudaki örneklerde bol bol debug kullanacağız diye düşünüyorum en iyisi hazırlıkları tamamlayalım artık :)

Tür Dönüşümü nedir ? Neden Kullanırız ?

Uygulamalarımız da elimizdeki nesne ya da çeşitli tiplerin, bazı durumlarda bambaşka şekilde davranmalarını ya da benzemelerini isteriz.Ya da çoğu zaman uygulamalarımız da değişkenler üzerinden çeşitli aritmetik ya da lineer işlemler gerçekleştiriz, ama iki farklı tipi bu işleme koymak çoğu zaman mümkün değildir. İşte bu ve buna benzer çoğu senaryoda tür dönüşümlerine ihtiyaç duyarız.
Sn.Sefer Algan'ın da bu konu hakkında bir örneklemesi vardı, "... Nasıl 3 elma ile 2 armutun toplamı mantığınıza ters düşüyorsa aynı şekilde 3 byte ile 2 int'in toplamıda bilgisayar açısından mantıksızdır..."

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

Adından da anlaşıldığı üzere aslında çoğumuz yazdığımız küçük uygulamalarda bile farkında olmadan değişkenleri tür dönüşümüne maruz bırakıyoruz.
Mesela aşağıdaki gibi bir kod bloğu düşünelim,
 

namespace Makale.Test
{
    class Program
    {
        static void Main(string[] args)
        {
            int _int = 35;

            double _double;

            _double = _int;
            Console.WriteLine(_double);
        }

    }
}


Devamı
1
Facebook
Son Yorumlar