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ı

C# Enlem ve Boylam ile Şehir Öğrenme

By Burak TUNGUT - 21.11.2012 - Kategori Windows Phone 8

Bu makale ile enlem ve boylam bilgisini parametre olarak alıp, geriye plaka bilgisini döndüren bir method yazacağız.
Tüm bu işlemleri yapabilmek için öncelikle GeoCode adındaki Google Api'sini inceliyor ve örnek içinde kullanıyor olacağız.

Bir senaryo düşünelim,
Uygulamamız Türkiye de ki tüm hastanelerin konumlarını içeren bir bilgiye sahip ve GPS yardımıyla en yakın hastaneleri görmek istiyoruz. Bu durumda önümüze 2 yol çıkacaktır.

  1. Tüm hastanelerin enlem ve boylamları mevcut olduğundan dolayı, GPS ile konumumuzu alarak fizik derslerimizden hepimizin hatırladığı 2 nokta arasındaki fark (x ve y koordinatlarının kendi aralarında kare farklarının toplamları) formülü ile belli bir aralıktaki verileri alabiliriz. Ancak İstanbul gibi bir yerde uzaklık-yakınlık konusu için belli bir aralığı girebilmek pekde kolay olmayacaktır :)
  2. Ve bizim bu makale ile kullanacağımız yol ise yine GPS den enlem ve boylam bilgisini çekmek ve bu bilgiler ile hangi şehirde olduğumuzu bulmak, o şehirdeki tüm hastaneleri listelemek olacaktır.

Tabi ki uygulama için hastane gibi bir entity yaratmaya kalkmayacağız. Sadece Enlem ve boylam bilgisi ile nasıl bilgiler alabileceğimizi göreceğiz.
Tüm bu bilgileri çekebileceğimiz neyseki bir Google Api'si mevcut. Enlem ve boylam bilgisini alan ve geriye çeşitli bilgiler geri döndüren bu api yi inceleyelim,

http://maps.google.com/maps/api/geocode/xml?latlng={latlng}&sensor={sensor}&region={region}

İlk parametre enlem,boylam ikinci parametre false olarak kullanacağımız sensör ve üçüncü parametremiz ise tr olarak kullanacağımız bölge değerlerini alacaktır.
İstanbul da rasgele bir nokta seçelim. Aslında bu noktada emulatörümüzü kullanabiliriz,

Emülatörümüzün sağ tarafında en alttaki butona tıklayarak Tools sayfamıza ulaşalım ve Location bölgesinde arama kutusuna İstanbul yazıp enter diyelim. İstanbula herhangi bir noktaya resimdeki gibi sizde işaretleyin. Alt kısımda işaretlediğiniz noktanın enlem ve boylam bilgilerine ulaşacaksınız.

http://maps.google.com/maps/api/geocode/xml?latlng=41.0843,028.9886&sensor=false&region=tr

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ı
1 2 3 4
Facebook
Son Yorumlar