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.

Etiketler : Boxing,UnBoxing

Bugün nereden elime geçtiğini şimdi hatırlamadığım Olaylar ve Delegate’ler hakkında bilgi verilen bir video'yu izledim. Bu video’yu çeken henüz mezun olmamış meraklı bir arkadaş olmayıp ekmeğini bilişim ve programcılık eğitimleri vererek kazanan tecrübeli birisi. Video’yu biraz inceleyince bu arkadaşın Event’ları anlatırken sürekli kavramları birbirleri ile karıştırdığını fark ettim. Tıpkı Her Gün Bir Yanlış yazı dizisinde değerlendirdiğimiz C# kitabında olduğu gibi mevcut Event’ları oluşturmaktan söz ediyordu bu eğitimci arkadaş. Hal bu ki bu tecrübeli arkadaş bırakın C# 3.0 kitabımı C#’a Başlangıç Kitabı adlı PDF’yi söyle bir gözden geçirmiş olsaydı Form sınıfının mevcut olaylarını anlatırken ikide bir Event oluşturmaktan söz etmezdi.


Etiketler : C#,Görsel Dersler

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ı.

Etiketler : bogcu.com,Memik YANIK

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.

Etiketler : Aydın Köksal,Memik Yanık,C#

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.

Etiketler : Visual Studio,C#,Struct,IDE