Aylık arşivler: Eylül 2007

.NET’te Akımlar (.NET & Streams)

.NET Framework’te diğer başka platformlarda olduğu gibi I/O sistemi, akımlar üzerine kuruULdur. Akım(stream), byte düzeyinde bir girdi bilgisi oULşturan veya çıktı bilgisi elde eden mantıksal birimlerdir. Bu birimler I/O sistemi aracılığıyla dosya, network, ekran gibi fiziksel aygıta bağlanır. Örneğin disk üzerinde bilgi okuma/yazma, klavyeden bilgi alma ve ekrana bilgi yazdırma gibi işlemler için akım yöntemi kullanılır. Bilindiği gibi bu ortamlar, okuma veya yazma bakımından bellek kadar hızlı ve kullanışlı değildir. Bu yüzden bu ortamlara okuma/yazma işlemleri bir kere de değil parça parça(byte byte) işlenir. Örneğin internet’ten izlenilecek videoyu makinemiz bir kerede almaya hazır olmayabilir veya network alt yapısı bunu karşılamıyor olabilir. İşte bu tür durumlarda stream kavramı bir çözüm olarak ortaya çıkmıştır. Okumaya devam et

Delegeler ve Olaylar (Delegates and Events) – III

System.EventArgs Sınıfı
GUI kontrollerinde dikkat ettiyseniz kontrollerin çalıştırdığı metodlarda System.Object türünde sender ve System.EventArgs türünde e isimli iki tane parametre kullanılır. Bu format, önceki sayfada yazdığım gibi System.EventHandler isimli delegate’ten gelmektedir. Buradaki sender parametresi, eventi tetikleyen objeyi temsil eder. e parametresi ise o obje ile ilgili detayları bildirir. Bu parametreler, eventi üreten kontrolü öğrenmek ve ona ait ek özellikleri kullanmak için kolaylıklar sağlar. Örneğin mouse ile Form’a tıklandığında (MouseDown) mouse’in sağ mı yoksa sol mu tıklandığını e parametresinden anlarız. Okumaya devam et

Delegeler ve Olaylar (Delegates and Events) – II

Olaylar(Events)
Olaylar, mouse ile tıklama, klavyeden tuşa basma gibi kullanıcının işletim sistemi üzerinden gerçekleştirdiği faaliyetlerdir. Bu şekilde, uygulamamız içerisinde meydana gelen durum değişikliklerine karşı hassas olan ve bu değişiklikler doğrultusunda yönlendirilebilen programlama modeline olay güdümlü programlama (event driven programming) denir. Bu modeldeki programlar, bir şeyler yapmak için bazı şeylerin gerçekleşmesini beklerler. Bir bileşen üzerinde meydana gelen olayların takipçisi olup onları yakalayan mekanizmaya olay yöneticisi (event handler) denir. Olay tutucusu veya işleyicisi olarak ta tanımlanan event handler, ilgili olay gerçekleştiği zaman tetiklenir. Olay yöneticilerinin yönlendirilmesi bizim tarafımızda kodlanır, olay yöneticisinin olay gerçekleştikten sonra hangi işlemleri yapacağını delegatelerle tanımlarız. Yani olay yöneticileri, delegatelerle temsil edilir. Okumaya devam et

Delegeler ve Olaylar (Delegates and Events) – I

Değişkenler gibi metodlar da bellek üzerinde özel bir alanda yaşar. Değişken pointerleri gibi metodların başlangıç adresini işaret eden pointerler bulunur. Bunlara metod işaretçileri (function pointers) denilir. İstenirse metodlar, hafıza üzerinden sadece isimleriyle değil bu pointerler sayesinde de çağrılabilir. C veya C++’da bu yöntem yoğun olarak kullanılmaktaydı. .NET’in eskiden alışagelmiş unmanaged pointer desteği C# ile sınırlıdır. VB.NET, bu destekten yoksundur. Fakat desteklediği pointer yapısı CLS ile uyumlu olmadığı için tür güvenliği sunmaz. Bu yüzden .NET, fonksiyon işaretçileriyle aynı amaca sahip tür güvenliği sağlayan delege (delegate) isimli işaretçiler sunar. Okumaya devam et