C#

Method Overloading – Metotların Aşırı Yüklenmesi

Metotlar aşırı yüklenerek yani overload edilerek aynı isimli methodlardan birden fazla tanımlanabilir. Peki aynı isim dendiğine göre bunlar nasıl ayırt edilecek, bunun için imza kavramı denen bir durum söz konusu, nedir bu imza kavramı bunu açıklayalım. Bir method overload edilmek isteniyorsa ismi öncelikle aynı olmalıdır. Aksi takdirde bu o methodun overload edildiği anlamına gelmez, farklı bir method üzerinde çalışılmış olur. …

Daha Fazlasi

SingleTon Pattern Design (Tek Nesneler)

Singleton bir program çalıştığında belli bir nesneden sadece bir instance olmasını garantilemek için kullanılır. Buna ek olarak oluşturulan nesneye ilgili sınıfın dışından mutlaka erişim sağlanmasını da hedefler. Örneğin bir veri tabanı uygulamasında belli bir anda sadece bir bağlantının olması istenir yani her gerektiğinde yeni bir bağlantı nesnesi oluşturmaktansa mevcut bağlantı nesnesi kullanılarak daha performanslı bir yapı sağlanır. Bu işlemi gerçekleştirebilmek …

Daha Fazlasi

Static Classes (Statik Sınıflar)

Statik üyelerdeki durumu şöyle kısaca bir hatırlarsak, statik bir üye oluşturulduktan sonra ilgili class altındaki statik bir üyeye erişebilmek için ilgili class için bir instance almadan ulaşabileceğimizi, hatta instance aldıktan sonra bu üyelere ulaşamadığımızı anımsayabiliriz. İçinde sadece statik üye olan bir class için hiç bir zaman bu class’tan türeyecek nesneye ihtiyacımızın olmayacağını söyleyebiliriz o halde ama bu durum şu demek …

Daha Fazlasi

Statik Üyeler

Nesne yönelimli programlamada bir sınıf içindeki değişkenler, methodlar yani üyeler statik niteliğinde olabilirler. Bir üyenin statik niteliğinde olması demek bir sınıf içindeki yordam (method), özellik (property) gibi alanlardan rahatlıkla erişilebilmesi anlamına gelmektedir. Statik üyeler doğrudan sınıfın kendi üyeleri olup sınıftan üretilen nesneden bağımsız hareket etmekdedirler. Tüm nesnelerin ulaşabileceği ortak bir bellek alanında tutulurlar. Bu nedenle bir statik üyeye ulaşabilmek için …

Daha Fazlasi

Indexers (İndeksleyiciler)

Indexers (indeksleyiciler) yazım biçimi olarak properties (özelliklere) benzemektedirler. Indexers bir nesnenin dizi gibi indekslenmesini sağlar. Tıpkı bir array (dizi) tanımladığımız da bu array içinde hangi indeksteki elemanı görmek istiyorsak çağırdığımız gibi, indexer?lar da Class?ımızın bir array gibi olmasını sağlamaktadır. Örneğin class içindeki 7. Elemanı getir dendiğinde bu elemanı rahatlıkla getirebiliriz. Tanımlanması properties gibi sadece fazladan bir geri dönüş tipi ve …

Daha Fazlasi

Properties (Özellikler)

Properties (özellikler) , sınıfın içindeki değişkenler set veya get edilirken bazı özel işlemler yapmamızı sağlayan küçük kod parçacıkları olarak tanımlanır. Properties (özellikler) bir sınıfın içindeki yerel veya genel alanları yöneten, yönlendiren ve onlara ait özellikleri belirleyen yordamlardır. Genel olarak programcının ilgili alanı doğrudan kullanması yerine, o alana bu yordamlar üzerinden erişmesini sağlamak için geliştirilirler. Örneğin sınıf içindeki bir değişkene değer …

Daha Fazlasi

Destructors (Yıkıcılar)

Referans type değişkenler heap üzerinde oluşturulurlar ve oluşturuldukç heap üzerinde yer kaplamaktadırlar ve bu da doğrudan doğruya bellek alanını etkilemektedir.Yeni nesnelerin oluşturulabilmesi için heap alanının temizlenmesi gerekmektedir. Oluşturulan bir nesnenin heap alanından yani yüklendiği bellekten silinmeden hemen önce çalışan yordamlara destructor (yıkıcı) adı verilmektedir. .NET Framework içinde bulunan Garbace Collection (GC), heap üzerinde yani bellekte bulunan ancak referans edilmeyen bir …

Daha Fazlasi

Structures

Structures (yapılar) value tipinde nesnelerdir ve System.Object’ten türemişlerdir. Class’lar ise referans tipinde nesnelerdir. Dolayısı ile bu ikisi arasındaki temel farklılık bellek üzerinde kullanmış oldukları alanlardır. Bu alanlar STACK ve HEAP olarak adlandırılır. Bilindiği gibi, value type nesneler STACK alanı üzerinde tutulurken reference type nesneler HEAP alanı üzerinde tutulur. HEAP üzerinde tutulan Reference Type nesneleri .NET kontrol etmektedir ve bunları point …

Daha Fazlasi

Constructors (Yapıcılar)

Bilindiği üzere, nesneler sınıfların canlandırılmış halidir. Yani bir sınıfı ve üyeleri doğrudan kullanmak yerine ondan bir nesne üretip bunu nesne aracılığı ile kullanmayı tercih ediyoruz. Bir sınıftan nesne oluşturulduğunda, nesneyi hazırlayan şekillendiren yordamlar oluşur işte bunlara constructor (yapıcı) adı verilir. Constructor dışarıdan veri alabilir ancak geriye değer döndürmez. Bir sınıftan nesne oluşturduğumuz da yapılmasını istediğimiz işlemleri bu yordamlar yani constructor …

Daha Fazlasi

Class (sınıf) Üyeleri Metotlar

Sınıf Üyeleri, temel olarak şunlardır. İç içe sınıflar (nested class), yordamlar (methods), Yapıcılar (Constructors), Yıkıcılar (Destructors), Alanlar/Değişkenler (Variables), Özellikler (properties), indeksleyiciler (indexers), öznitelikler (attributes), arabirimler (interfaces), numaralandırmalar (enumarations), temsilci ve olaylar (delegates & events) ve yapılar (structers) gibi. Tabi tüm bu üyelerin hepsi bir sınıf içinde bulunmak zorunda değildir, fakat mutlaka en az bir yordam bulunmalıdır. Çünkü dışarıdan yordamlar üzerinden …

Daha Fazlasi