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ı

C# da Override Methodlar

By Burak TUNGUT - 21.11.2012 - Kategori C#

Bu makalem de C# ile iki sınıf üretip ikisinin de aynı isimde bulunan methodun farklı sonuçlar vermesini yani diğer methodu ezmesini sağlayacağız.
Override methodlar diğer bir değişle method ezme yöntemiyle base sınıfın methodunu etkisil hale getirerek kendi sınıfındaki methodu nasıl çalıştıracağımızı göreceğiz.

 Override methodlar nesne yönelim mimarisinin olmazsa olmazlarından biridir ve haliyle virtual methodlarda tabi ki. Method ezmeye yarayan override yapısı sayesinde miras aldığımız yani base sınıfımız olan bir sınıftaki methodun eksikliğini giderebiliriz.

Override konusunu iyi bir şekilde kavramak için iki sınıf düşünelim. 1. Sınıfımız insan sınıfı olacak ve adi ve soyadi üye değişkenlerine sahip olacak.Aynı zamanda bu sınıfımızda bilgileriYazdir gibi bir methodumuz olacak ve bu method o kişinin bilgilerini konsola yazacak.

2.Sınıfımız ise ogrenci sinifi olup kisi sinifindan miras alacaktır. Farklı olarak ogrencino üye değişkenine sahip olan bu sınıfımız için ise override bir method yazacağız. Ama öncelikle yazmamamız durumunda ne ile karşılaşacağımızı bir incelemek istiyorum. Şimdi sınıflarımızı görelim,

 

class insan
        {
            private string adi;
            private string soyadi;

            public string Soyadi
            {
                get { return soyadi; }
                set { soyadi = value; }
            }

            public string Adi
            {
                get { return adi; }
                set { adi = value; }
            }

            public virtual void bilgileriYazdir()
            {
                Console.WriteLine("Kişi bilgileri : "+this.adi+" "+this.soyadi);
            }
        }

Şimdi ise insan sınıfında miras alacak olan ogrenci sınıfımızı inceleyelim,

Devamı

C# da Nullable Tipler

By Burak TUNGUT - 21.11.2012 - Kategori C#

Bu makale ile Nullable tipleri görüp, C# da bunların deklare edilmesi ve kullanılmasını inceleyeceğiz.
Nerde ne zaman nullable tip kullanmalıyız ? Nullable tiplerin faydaları ve kontrol edilmeleri...

 Aslında nullable tipler bizim normal hayatımız da kullandığımız veri tiplerinden farklı değiller. Daha doğrusu Nullable yapabileceğimiz tipler aslında günümüz de yazılım geliştirirken kullandığımız değişkenlerdir.

Sözlükteki karşılığı gibi nullable tipler alabildiği değerlerin haricin de boş da olabilmelerini sağlar. Nullable tiplerin faydalarından biri de söz konusu değişkenin boş olması durumunda try catch bloğu kullanmaktansa geriye bool değeri döndüren bir method ile rahatça hata fırlamalarının önüne geçebiliriz.Benim en çok kullandığım kısım ise eğer bir değişken için 3 ayrı değer kullanmam gerekiyorsa int yerine nullable bir bool kullanabiliyorum Böylece true, false ve null değer alabiliyor.

Nullable değişken deklare etmek

Devamı

C# da Extension Method Kullanımı

By Burak TUNGUT - 21.11.2012 - Kategori C#

Bu makalem ile C# da Extension method kullanımını inceleyip, aynı işi yapan normal method ile arasındaki farki göreceğiz.

Bu methodlar sayesinde bize ait olmayan ya da erişim iznimiz olmayan .Net Classlarındaki tipler için dahi methodlar yazabiliriz.

C# 3.0 ile hayatımıza giren extension methodlar bize ait olmayan sınıflardaki tiplere bunlardan bağımsız olarak method yazmamızı sağlar. Örneğin string tipi için de kullandığımız "ToString" methodunu ele alalım, bu method hiç şüphesiz string tipinin yazıldığı class içinde tutulmaktadır. Ama biz ayrıca string tipi için bir extension method yazdığımız da ise kullanımı aynen bu şekilde olacaktır.

Öncelikle bir sınıf yaratıyoruz ve adını "Sinifim" yapıyoruz.
Öyle bir method tasarlıyalım ki gelen int degeri pozitif ise true, negatif ise false değeri geri döndürsün.

Devamı

C# ve Java da Foreach Döngüsü

By Burak TUNGUT - 21.11.2012 - Kategori C#

Bu yazımda C# ve Java da foreach döngüsünü küçük bir integer dizi örneği ile açıklayacağım.

Blog yazarken çokta düzensiz yazmak istemiyorum ama elime bir dil kitabını alıp indexi de takip etme taraftarı değilim :) Fakat temel bilgileride bunun gibi araya sıkıştıracağım.
 

Neden Foreach ?

Aslında neden foreach den önce "Nedir Foreach ?" sorusuna cevap verdiğimiz zaman aynı soruya da yanıtı vermiş olacağız zaten.
Klasik bir tanım yapmaktansa aşşağıda kod ile de göstereceğim gibi bir adet integer dizi düşünelim uzunluğu da 3 olsun ve içeriği sırasıyla 1,2,3 sayılarını içersin.

dizi[0] = 1
dizi[1] = 2
dizi[2] = 3

Şimdi kodlar ile dizi de işlem yaparken for kullanmaktansa foreach kullanmanın syntax kolaylığını görmüş olacağız. Fakat her for kullandığımız yer de foreach kullanamayada biliriz :)

C# ve Java için sıralama alfabetik yapılmıştır :)

Devamı
1 2 3 4
Facebook
Son Yorumlar