C# veya herhangi .NET uyumlu bir dille 3-5 satır kod yazmış olanlar Boxing ve UnBoxing işlemlerinin ne olduğunu bilirler. Burada Boxing ve UnBoxing işlemlerinden söz etmeyeceğim. Size bu kısacık yazıda diyeceğim tek şey şudur: C# konulu kaynaklarda C# uzmanı edasıyla birileri sizlere Gelişmiş Boxing işlemlerinden söz ediyorsa, onu bu buluşundan dolayı tebrik etmeyi ihmal etmeyiniz. Çünkü, gerçekte ne az gelişmiş ne de çok gelişmiş Boxing diye işlem vardır. Yani Boxing işleminin gelişmişi, az gelişmişi yoktur.
Bundan yaklaşık 4 yıl kadar önce memikyanik.com'a şimdi olduğu gibi aklıma bir şeyler geldikçe yazarken blogcu.com'u fark ettim. Meraktan üye olup http://memikyanik.blogcu.com 'a bir şeyler yazmaya başladım. Bir ara blogcu.com'daki sayfamı günde ortalama 100 kişi ziyaret ediyordu. Üstelik bu ziyaretçilerin neredeyse tamamı blogcu.com'da blogu olanlardı.
Sonra blogcu.com tökezlemeye başladı, erişim sorunları yaşanmaya başlandı. Ben de blogcu.com yerine blogger.com'a yöneldim. Bir süre önce blogcu.com yenilendi. Bir hafta boyunca yaptığım testlerde sorun yaşamayınca memikyanik.com'a yazdığım bazı yazıları blogcu.com'a da aktarmaya başladım. Blog sahibi olmak isteyenler blogcu.com'u değerlendirmeye alabilirler.
Bu arada blogcu.com'un editör penceresinde resim eklemeyle ilgili bir sorunun olduğunu buradan duyurayım: Editör penceresinin yüksekliğinin ekran yüksekliğinden fazla olmasına izin verilmemesi gerekir.
* Bu yazı memikyanik.com 'da yayınlanmak üzere yazıldı.
Hocam malumunuz olduğu üzere .NET dillerinde uygulama geliştirmek isteyen programcıların büyük bir yüzdesi Microsoft ürünü Visual Studio’yu kullanmaktadır. Visual Studio ile uygulama geliştiren programcı sayfa veya forma yerleştirdiği nesnelerin olayları için metot hazırlarken işin kolayına kaçar ve Visual Studio’dan yararlanır. Hocam bunu bir örnek ile açıklamama izin verin. Bu amaçla Visual Studio penceresinin genellikle sol kenarında duran Toolbox’tan yararlanıp projenin formuna 2 ListBox yerleştirdim.
Hocam izninle ekleme yapayım: Bırakın forma ListBox yerleştirmeyi bugünlerde öğrenmeyi bundan 15 yıl önce yayınlanan kitabımda Windows programcılığıyla ilgili bu işlemleri Türkçe olarak ayrıntıları ile anlatan ilk kişiyim.
Hocam yukarı ifade ettiğim gibi programcılar forma yerleştirdiği nesnelerin olayları için metot hazırlamak istediği zaman Visual Studio’dan yararlanmayı tercih ediyorlar. Bu amaçla Visual Studio’nun Properties penceresine geçiyorlar. Hocam Visual Studio’nun Properties penceresinde o sırada seçili durumdaki nesnenin özellikleri veya olayları listeleniyor. Aşağıda verdiğim ekran görüntüsünü aldığım sırada Properties penceresinde ListBox2 aldı ListBox nesnesinin özellikleri listeleniyordu.

Hocam programcı söz konusu nesnenin herhangi bir olayı için metot yazmak istediğinde üzerinde şimşek işareti olan düğmeyi tıklar ve ilgilendiği olayın üzerine gider. Hocam aşağıda verdiğim ekran görüntüsünü ListBox2 nesnesinin DragDrop olayının üzerine gittikten sonra aldım.
Hocam programcı bu sırada DragDrop olayının üzerinde çift tıklama yaparsa Visual Studio, programcının bu ListBox’ın DragDrop olayını temsil edecek bir metot hazırlamak istediğini varsayar. Hocam aşağıda verilen ekran görüntüsünü bu ListBox’ın DragDrop olayını Properties penceresinde çift tıkladıktan sonra aldım.

Hocam malumunuz olduğu üzere bütün Visual Studio kopyaları her yede aynı tepkiyi veriyor. Yani ister Ankara’da ikamet eden ister Adana’da ikamet eden programcı Visual Studio’nun Properties penceresinde ListBox2 adlı ListBox’ın olayları listelenirken DragDrop olayını çift tıkladığında Visual Studio yaşanılan yer ayrımı yapmadan aynı tepkiyi veriyor. Hocam izninizle şimdi Visual Studio tarafından hazırlanan bu metoda 2 satır yazacağım.

Hocam daha önce .NET dilleriyle ilgilenmediyseniz ilk bakışta bu kodda ne yapıldığını anlamayabilirsiniz. Bu nedenle açıklama yapmak istiyorum. Visual Studio tarafından hazırlanan metoda yazdığım ilk satırda formdaki ilk ListBox’ın bir elemanı ikinci ListBox’a aktarılmaktadır. İkinci satırda ise söz konusu eleman ilk ListBox’tan silinmektedir. Hocam bu açıklamaları yaptıktan sonra şimdi şimdi Ankara merkezli bir programcının yazdığı başka bir metodu sizin görüşlerinize sunacağım.

Hocam Ankara’da ikamet eden programcının ListBox2’nin DragDrop olayı için hazırladığı metotta yalnızca bir satır vardır. Benim yazıp yukarıda verdiğim metotta ise 2 satır bulunmaktadır. Hocam sizce bu 2 kod birbirinin aynısı mıdır? Yani Ankara’da ikamet eden programcının yazdığı şu satır;
listBox2.Items.Add(e.Data.GetData(DataFormats.Text).ToString());
ile Memik Yanık’ın yazıp aşağıda verdiği 2 satır birbirinin aynısı mıdır?
listBox2.Items.Add(listBox1.Items[Sira]);
listBox1.Items.Remove(listBox1.Items[Sira]);
Hocam işin içinden çıkamazsanız sahibi olduğunuz Bilişim A.Ş.'de çalışan boğazından haram lokma geçmemiş .NET uzmanı bilgisayar mühendislerinden destek alırsanız sevinirim.
Bir çok yerli ve yabancı yazarın .NET Framework, Visual Studio ve C# derleyicisinin sürüm numaralarını birbirleriyle karıştırdıklarını biliyorduk. Bu nedenle bir çok yerde bu konuda açıklamalar yaptık. Her Gün Bir Yanlış yazı dizisine konu ettiğimiz programcılık kitabının yazarı işi biraz daha ileri götürüp Visual Studio ile C# derleyicisini birbirleriyle karıştırmıştır. Bu tespiti yaptıktan sonra söz konusu C# kitabından bir cümleyi buraya alalım.
Visual Studio 2003 sürümünden farklı olarak 2005’de struct içerisinde struct oluşturabiliriz.
Bu cümleyi yorumlamadan önce biraz bilgi verelim: C# derleyicisinin 1.0 sürümü iç içe struct tanımlamayı desteklemiyor. Bu destek yıllar önce hazırlanan C++ ve Pascal derleyicileri tarafından verilirken C# 1.0 tarafından verilmiyordu.
Bu durumda programcının birisi .NET uyumlu programlama dillerinde uygulama geliştirmeyi kolaylaştırmak üzere kullanıma sunulan ilk Visual Studio sayesinde C++ kodu ve bu kodda iç içe struct hazırlayabilir. Yani anlayacağınız konu C# kodu olduğunda iç içe struct desteğinin Visual Studio ile bir ilgisi yoktur. Yazarımız Visual Studio’nun bir IDE olduğunu unutup ona derleyici yani programlama dili muamelesi yapmıştır. Visual Studio'ya derleyici muamelesi yapılan kitapta her 5-6 sayfada bir teknik hatanın olmasını normal karşılamak gerekir.
Tam 48 Saat Adana'da Değildim...
20/11/2009Arkadaşlar merhaba. Tam 48 saat Adana dışındaydım. Bu 48 saat boyunca buraya birşey yazma imkanım yoktu, 48 saat boyunca memikyanik.net'e bakmadım bile.48 saat boyunca ne mi yaptım? C# derleyicisinin nazarında nesne veya değişken adı olarak tablo'nun sayfa'dan farklı olduğunu anlatmaya çalıştım.. Başarılı oldum mu? Henüz belli değil. Çünkü C# derleyicisinin nazarında sayfa'nın "tablo" ile aynı olduğunu beyan eden Prof. unvamlı öğretim üyeleri, bilgisayar mühendisleri vs var.
Şimdlik diyeceğim şudur: Memik Yanık topu topu 4 adet olan veritabanı işlemlerini anlatırken kullanılacak konu başlıklarına seçerken başkalarına ait konu başlıklarından ve değişkenlere ad seçerken başkalarına ait mevcut değişken adlarından esinlendiği(örneğin Memik YANIK "Tablo" adında bir değişken tanımlamayı akıl edebilmek için gidip başkalarına ait kaynaklarda sayfa adlı değişkene bakmıştır) için yapılan resmi hesaplamalara göre birilerine 25.3 YTL eski para ile 25.300.000 TL zarar vermiştir. Memik YANIK bu zararı anında karşılamak istedi ama zarara uğrayanlar(!) bu miktarı almayı kabul etmediler.