30 Ekim 2017 Pazartesi

Kolay Okunan Notlar Hazırlamak



Bir üniversitede, lisede veya dersanede matematik veya fizik dersleri veriyorsanız,  muhtemelen öğrenciler sizi anlamakta zorluk çekiyorlardır. Bunu gördüğünüzde zaman zaman kabahati kendinizde arayacaksınız. Zaman zaman dedik, çünkü matematik ve fizik derslerini, öğrenciliğinizde size nasıl anlatıldıysa öyle anlatıyorsunuzdur. Öğrenciler beni anlasın diye çaba harcarken kendinizi not hazırlıyor olabilirsiniz. Tabi, kısa bir süre sonra öğrencilerin işine yarayacak, anlatılanların kolay anlaşılmasına yardım edecek metinleri kaleme almanın hiç te kolay olmadığını göreceksiniz.

20 Eylül 2017 Çarşamba

Process’leri Tarif Edip Thread'leri Anlatmak


Birçok kaynakta konu thread’lere getirilmeden önce Windows ile işletilen bilgisayarda aynı anda birden fazla programın çalıştırıldığından söz ediliyor. Hal bu ki konu Windows ve çalıştırılan uygulamalar olduğunda, thread yerine process’lere atıfta bulunmak gerekir. Sıra C# uygalaması yazarak thread’lerden söz etmeye geldiğinde ortada bir tek uygulamanın olduğunu gören okurun kafası karışmaktadır.

31 Ağustos 2017 Perşembe

Event Kavramını Anlatırken Aldığım Birkaç Not


En başta Windows’un “mesajlar” ile işlem yapan bir işletim sistemi olduğunu ve kullanıcının yaptığı işlemlere göre ilgili uygulamaya mesajlar gönderdiğini hatırla­mak gerekir. C# uygu­laması dahilinde gerçekleşen olayları, Windows’la ilgili olaylar ile karıştır­mamak gerekir. Kullanıcının klavye ve fare ile yaptığı işlemleri temsil eden mesajları Windows uygulamaya gönderir. C# uygulaması bu mesajları alıp delegate’ler aracılığı ile ilgili metotları işletir.

Olayların zor anlaşılmasının en önemli nedeni bizce şudur:

* C# ve .NET programcılığı konusunda yolun başında olan birisine forma yerleştirilen “button1” nesnesinin Click olayının nasıl kullanıldığı, Click olayını temsil eden metodun nasıl hazırlandığı anlatılır.

* Okurumuz veya programcı adayımız bunları okuduktan sonra kafasında olaylar ilk gördüğü şekliyle netleşir. Programcı adayı için artık olay demek Properties penceresinde Button veya başka bir sınıfın olaylarını listeleyip olayın adı üzerinde çift tıklayıp Visual Studio’nun metot hazırlaması ve bu metodun içine bir şeyler yazmasıdır.

*Programcı adayımız veya okurumuz Delegate kavramı hakkında henüz yeteri bilgiye sahip olmadan .NET Framework ile hazır olarak gelen bir delegate olan EventHandler’ı kullanmayı bir güzel öğrenir.

* Başka bir deyişle C# kitabı okuyanlar, C# ve .NET programcılığını öğrenmek üzere kursa gidenler event anahtar kelimesini hiç kullanmadan deneysel de olsa programlar yazarlar. Bu şartlarda programcı adayının için event kavramı diye sorunu henüz yoktur.

* Derken programcının önüne “event” anahtar kelimesini çıkarırız. Tabi event anahtar kelimesiyle ilgili olarak söylenenler eski öğrendikleriyle hiç alakalı değildir.

* Bu şartlarda event kavramı C# dilinin en zor anlaşılan konularından birisi olur çıkar.

26 Ağustos 2017 Cumartesi

Operatörleri Aşırı Yüklemeyle İlgili Notlarım


Konu ister operator overload işlemi olsun ister indeksleyici hazırlamak olsun, önce kavramsal bilgi vermeye çalışıyoruz. Örneğin  indeksleyicilerden söz etmeden önce dizi değişkenlerin elemanlarına nasıl erişildiğinden kısaca söz ettik. Bu sayede indeksleyicilerin ne işe yaradığını bilmeyenlere konunun ezbere anlatılıp okunmasının önüne geçmiş oluyoruz.

Konu hakkında biraz ön bilgi verildikten sonra anlatıma örnek verilerek yani kod üzerinde devam ediyoruz. Herhangi bir konuyu anlatırken verdiğimiz örneklerin hem kısa ve kolay hazırlanabilir olmasını hem de kolay anlaşılmasını gözetiyoruz. Örnek gerekirse, yerli yabancı bir çok kaynakta operator overload işlemi anlatılırken kompleks sayılarından yararlanma yoluna gidiliyor. Biz böyle örnek vermeyi tercih etmeyiz, ya okur kompleks sayıları bilmiyorsa deriz.

 

20 Ağustos 2017 Pazar

C# 3.0 ve Sonrası İle Gelen Enumerable Sınıfı

Elinizdeki LINQ kaynaklarında burada yapısının bir kısmı ekran görüntüsü olarak verilen Enumerable sınıfı üzerinde ayrıntılı bir şekilde durulmaysa, bilin ki okuduklarınızdan kafanızın karışması ihtimali yüksektir.

19 Ağustos 2017 Cumartesi

Statik Dizi Değişkenler!


Tesadüfen elime geçen ve bir öğretim üyesi tarafından hazırlanan PDF’de Array sınıfı tipindeki nesnelerden statik dizi diye söz edildiğini görünce bu kısa metni yazmak gerekti.

Hoca arkadaşın demek istediği, klasik şekilde tanımlanan dizi değişkenlerin eleman sayısının sonradan değiştirilemediğidir. Tabi bunu derken, nesneye yönelik programlama dillerinin anlamı yıllardır “sabit” olan statik kavramını kullanıyor. 

Madem konu açıldı biraz konuşalım: İster C#, ister Visual Basic isterse de Java dili kullanılsın, ArrayList gibi nesne hazırlandığında, nesne dahilinde eleman sayısı önceden belli olan yani “statik” bir dizi değişken hazırlanır. Bu ArrayList nesnesine kullanıcı tarafından fazla sayıda eleman eklenip başta belirtilen sayı aşıldığında geri planda yeni bir dizi değişken tanımlanır ve artık kapasitesi yeterli gelmeyen eski dizi değişkenin mevcut elemanları yeni dizi değişkene aktarılır. Bu işlem geri planda otomatik olarak yapıldığı için fazla meraklı olmayan programcılar ArrayList için dinamik dizi diyebilirler.

Yukarıda adlarını andığımız programlama dillerinde ArrayList sınıfı olmasaydı programcılar için gerektiğinde kapasitesi iki katına çıkarılan yeni bir dizi değişkeni tanımlayıp eski dizi değişkenin elemanlarını yenisine kopyalaması zor değildir. Tabi hazırda ArrayList veya List sınıfları dururken hiçbir programcı kendini yorup boş yere kendi koleksiyon sınıfını hazırlamaz.