Application.Exception class’ını kullanarak kendimiz istisnai durumlar yaratabiliriz. Böylece bizim belirlediğimiz koşullarda da istisnai durum oluşmuş olur. Read the rest of this entry »
Önceki yazıda, bir sınıfın statik üyelerine erişmek için o sınıftan bir nesne oluşturmamıza gerek kalmadığını doğrudan sınıfın adını kullanarak erişebileceğimizi hatta bu üyelere, oluşturulmuş bir instance üzerinden erişilemeyeğini söylemiştik. İçerisinde sadece statik üye içeren bir sınıfı ele aldığımızda hiç bir zaman bu sınıftan türemiş bir nesneye ihtiyacımızın olmayacağını söyleyebiliriz ama bu durum, bu sınıftan instance oluşturamayacağımız anlamına gelmemektedir. Read the rest of this entry »
.NET Framework’ta nesneler, statik(static) veya statik olmayan(non-static) üyelerden oluşur. Statik olmayan üyeler, class’tan türetilmiş nesnenin üyeleridir, sınıftan kaç nesne türetilmişse bu üyelerin o kadar kopyası bulunur, bir nesneye ait üyenin değerinin değişmesi, o üyenin diğer nesnelerdeki değerini etkilemez. Statik üyeler ise, doğrudan class’ın kendi üyeleri olup class’tan üretilen nesneden bağımsız hareket ederler. Tüm nesnelerin ulaşabileceği ortak bir bellek alanında tutulur. Bu nedenle statik üyelere erişmek için class’tan bir nesne oluşturmaya gerek yoktur. Bu da statik üyelerle işlem yapmayı hızlandırır. Bütün statik üyeler, değer veya referans türü olup olmamasına bakılmaksızın hafızanın heap alanı üzerinde depolanır. Bu heap alanına 8 byte’lık bir pointer işaret eder. Kaç tane instance’in yaratıldığı önemli olmayıp her zaman tek bir hafıza slotu varlık gösterir. Read the rest of this entry »
C# 2.0 ile birlikte gelmiş olup iterasyon işlemlerini daha kısa ifadelerle oluşturmayı sağlar. Foreach() metodu gibi IEnumerable türündeki bir metodun foreach yöntemiyle hangi değerleri döndüreceği, yield anahtar sözcüğüyle belirlenir. Böylece her iterasyon için farklı bir değer gönderme imkanına sahibiz. Yield sözcüğü, “return” veya “break” ifadesiyle birlikte kullanılır. “return” ifadesi, geriye değer döndürmesini, “break” ifadesi ise o adım için iterasyon yapmamasını sağlar. Read the rest of this entry »
2.0’dan önceki C# sürümlerinde bir delegate’i tanımlamak için daha önce tanımlanmış bir metod(named method) kullanmak gerekirdi. C# 2.0 ile birlikte C++’taki inline metodlar gibi isimli metod zorunluluğu ortadan kaldırılmış olup isimsiz metod da kullanılma imkanı sunulmaktadır. Anonymous Method sayesinde bir kod bloğunu, delegate tanımlamasında parametre olarak geçebileceğiz. Delegate çalıştığı zaman kendisine parametre olarak geçilmiş kod bloğunu çalıştırır. Read the rest of this entry »
ADO.NET 2.0 ile gelen yeniliklerden biri olan System.Data.LoadOption numaralandırıcısı, veri kaynağından alınmış kayıtların, Load() veya Fill() metodu kullanılarak var olan ve üzerinde primary key tanımlı veri tablosuna yüklenirken aynı kayıtlara rastlanıldığında nasıl davranılacağını belirtir. Değer olarak aşağıdaki seçeneklerden birini alır.
DataTable, DataSet, DataRow gibi nesnelerdeki satırların durumu hakkında bilgi almak herhangi bir güncelleme olmuşsa hangi aşamada olduğunu öğrenmek için System.Data.DataRowState ve System.Data.DataRowVersion kavramları kullanılır. Read the rest of this entry »
MARS(Multiple Active Result Sets), ADO.NET 2.0 ile birlikte geliştirilmiş olup tek connection üzerinden birden fazla query veya stored procedure(multiple queries) çalıştırmaya izin veren bir özelliktir. Bu özelliği kullanarak aynı bağlantı nesnesini kullanarak birden fazla veri seti üzerinde forward-only, read-only işlemler yapılabilir. Read the rest of this entry »
ASP.NET tabanlı site hazırlarken gerek sunucu ile istemci arasındaki işleyişi izlemek gerekse web tabanlı özel kontrol geliştirirken request-response sürecindeki yol haritasını, Asp.NET yaşam döngüsünü bilmek sürece olan hakimiyetimizi artıracaktır. Asp.NET’in sayfa yaşam döngüsünde her request işleminde page nesnesi ve içindeki kontroller yeniden oluşturulur ve işlem sonucunda yok edilir. Bu oluşma-yok olma sürecinde bazı evre ve olaylar gerçekleşir. Bu evre ve olaylar, sayfa ve sayfa içerisindeki kontrollerin yaşam döngüsüyle ilintilidir. Burada Asp.NET yaşam döngüsünü hatırlayacak kadar burada özetlememiz faydalı olacaktır. Aşağıdaki tabloda sayfa ve kontrol bazlı yaşanan evreler gösterilmiştir. Read the rest of this entry »
.NET 2.0 ile birlikte delegate(temcilsi) yapılarını da generic olarak tanımlama şansı elde etmiş olduk. Delegate, bir olay gerçekleştiği zaman bunu ilgili yerlere(metodlara) bildiren temsilcilerdir. Delegate tabanlı işlem yapılacağı zaman öncelikle delegate türünde bir temsilci metod tanımlanır ardından sözkonusu olay gerçekleştiği zaman bu temsilcinin bilgilendirme yapacağı metodlar, temsilci metodun listesine eklenir. Çalışma zamanında olay(event) gerçekleştiği zaman temsilci metod yani delegate çağrılır. Temsilci metod da hangi metodları temsil ediyorsa onları tetikler, onları gerçekleşen bu event’ten haberdar eder. Delegate yapılarını, daha sonra “Delegate & Event” konulu bir makalede işleyeceğiz. Read the rest of this entry »




Recent Comments