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ı

C# Ref ve Out Anahtar Kelimeleri

By Burak TUNGUT - 21.11.2012 - Kategori C#

Bu makale ile değer tipleri ve referans tiplerinin arasındaki farkları ve metotlara aktarmınında yardımımıza koşacak olan 2 adet anahtar kelimeye deyiniyor olacağız.
1 Aylık biri süreden sonra tekrar C# a geri dönüyoruz :)

Öncelikler herkese merhabalar :)

Yaklaşık 1 aylık dönemde yazamadığım makaleleri birer birer sıralamaya an itibariyle başlıyorum. Açık sözlü olacağım bu dönem için de makale yazmam çok mu imkansız dı ? Aslında hayır. Ama staj, tatil, ev taşıma vs.vs. olaylar derken bir de baktım ki bir hayli süre geçmiş :)
Hiç uzatmadan bugün için itinayla seçtiğim konuya geçelim.

Ref ve Out anahtar sözcüklerinden önce değer tipleri ile referans tiplerinin arasındaki önemli bir farktan bahsetmek istiyorum. Uygulamalarımız da sık sık deklare ettiğimiz değişkenleri düşünelim. Özellikle 2 adet sık kullandığımız ve farkını ortaya koyacak olan değişkenlerden örnek vermek istiyorum. int ve String.

Örneklediğimiz bu iki değişken arasındaki en büyük fark, int tipinin bir primitif yani değer tipi ancak String'in ise bir referans tipi olması.

Aralarındaki farka bakacak olursak. Bir primitif deklare edildiği zaman adresi ile birlikte aldığı değer RAM'in Stack bölgesinde, bir referans tipi deklare edildiği zaman ise aldığı değer(ler) RAM'in Heap bölgesinde ve bu bölgede ilgi alanı işaretleyen (pointer) kısım ise Stack bölgede yer alır.

Devamı

Recursion 3 - Fibonacci Sayı Serisi

By Burak TUNGUT - 21.11.2012 - Kategori C#

Bu makale ile recursion konusuna Fibonacci sayı serisi ile devam ediyoruz. Yapacağımız recursive method sayesinde fibonacci serisini inceleyeceğiz.
Özelleşmiş bir isme sahip olan bu serinin adını halen bakmadan doğru bir şekilde yazamıyorum :)

 Öncelikle 6. yüzyılda hintli matematikçiler tarafından bulunup, tavşanların üremesiyle ilgili bir konu için Leonardo Fibonacci tarafından 1202 yılında ortaya koyulan bu seri temel olarak 0 dan başlayarak bir sonraki sayının kendisinden bir ve iki öncesindeki sayıların toplamından oluşur.

Seriyi biraz yazacak olursak ;
1 1 2 3 5 8 13 21
1 2 3 4 5 6  7   8
Yukarıda ilk 8 indis ve seriye ait sayılar verilmiştir. Şimdi Visual Studio IDE'lerimizi açalım ve bir konsol uygulaması açıp kodlarımızı yazmaya başlayalım,

Devamı

Recursion Dersi 1 - Seri Hesaplaması

By Burak TUNGUT - 21.11.2012 - Kategori C#

Bu makale ile Recursion konusuna devam ederek, matematiksel seri işlemlerinin nasıl hesaplayacağını görüp, 3 adet seri çözümü yapacağız.
Sizin için hazırladığım 3 adet seri denklemini öncelikle inceleyerek her 3 yapının çözümünü yapacak olan methodların da biribirleriyle hemen hemen aynı olduğunu sizler de göreceksiniz.

Buraya tıklayarak daha önce faktöriyel hesaplaması ile giriş yaptığımız recursion konusuna şimdi ise 3 adet seri çözümünü inceleyerek devam edeceğiz.
Bir önceki makalem de üzerinde durduğum konu da tekrar duruyorum. Bir uygulama yapmadan önce tasarlayacağımız algoritma için problemimizi çözüme ulaştırmalıyız.
Tekrar hatırlatmak istiyorum ki recursive methodlar kendini tekrarlamalıdır. Eğer geri dönüş yapan bir method yazıyorsak ki öyle yapacağız mutlaka return anahtar kelimesi kendini tekrar çağırmalıdır.
Recursif methodumuzu ikiye ayıralım. 1. Bölüm şart, 2. Bölüm ise işi yapacak kısımlar olsun. Şimdi hesaplamak istediğimiz 3 adet seriyi inceleyelim ;

Devamı

Kredi Kart Numarası Doğrulama - Luhn Algoritması

By Burak TUNGUT - 21.11.2012 - 1 Yorum - Kategori C#

Bu makalem de Kredi Kart Numaralarının doğrulanmasını sağlayan Luhn algoritmasını inceleyip uygulama yazacağız.
Öncelikle algoritma şemasını incelemek ile başlayacağımız bu makale ile problem çözmeyi ve çözülen probleme göre uygulama geliştirmeyi öğreneceğiz.
 

 Her ne kadar 15 Yaşımda bu algoritma ile ilgili bir uygulamayı bir istek üzerine Delphi ile yazmış olsam da tekrar incelediğim de hatırlamakta zorluk çektim.
Kısaca algoritmamızın tarihçesine bakacak olursak Hans Peter Luhn ve IBM tarafından 1954 yılında geliştirilen bu algoritma aynı zaman da Luhn Check ve Mod Check olarak da geçmektedir.

Normal de bu konuyu Web Servisleri anlatırken işlemek istiyordum fakat ilerleyen zamanlarda hem webmethod hem de webservis tarafından yine bu konuya geri döneceğiz.
Öncelikle kabataslak ve bir bakışta algoritmayı bize anlatacak olan şemamıza bakalım,

Devamı
1 2 3
Facebook
Son Yorumlar