:::: MENU ::::

Çok Biçimliliğin Faydaları ve Çok Biçimliliğe İlişkin Örnekler

Çok biçimlilik türden bağımsız kod parçalarının oluşturulması için kullanılabilmektedir. Örneğin bir oyun programında oynanan top bir sınıfla temsil edilsin bu sınıfın git isimli methodu topu hareket ettirsin fakat oyun içerisinde duruma göre farklı topların kullanılabileceğini düşünelim. İşte oyunda zıplayan top, patlak top, normal top gibi değişik biçimde hareket eden toplar bulunuyor olsun. Çok biçimli bir uygulamada biz bu git methodunu sanal bir method olarak yazıp, bunu türemiş sınıflarda override edebiliriz. Böylece programımızı top kavramı üzerinde genelleştirebiliriz.
Continue Reading



Örnek Bir GUI Uygulaması

Ekrana bir pencere cıkartan temel GUI programına iskelet program denilebilir. Iskelet gui programında bazı işlemlerin mutlaka yapılması gerekir. Burada bunların detaylarından bahsetmeyecegiz.
Iskelet gui progrmaı sırasıyla şu adımlardan geçirilerek oluşturulur:
– boş bir proje yaratılır.
– Proje deşu 3 .dll ‘e referans edilmelidir;
o System.dll
o System.Windows.Forms.dll
o System.Drowing.dll
– Projeye kaynak dosya eklenir. Ve iskelet program aşagıdaki gibi olusturulur.
– Ayrıca siyah ekranın cıkmasını engellemek için proje seçeneklerinden Output Type’ ımız windows application olarak seçilir.
Continue Reading


Delegelere ilişkin ayrıntılar

Bir delege nesnesi başlangıçta tekbir methodu tutacak şekilde yaratılır. Fakat daha sonra delege nesnesi birden fazla methodu tutacak duruma getirilebilir.

Aynı türden iki delege referansı “+” operatörüyle toplanabilir. Bu durumda yeni bir delege nesnesi yaratılır. Yeni oluşturulan delege nesnesinin method listesinde toplam iki delegenin methodları bulunur. Continue Reading


Delegeler

C#’ da delegeler Method tutan özel sınıflardır. Delege bir methodu alır, onu tutar ve biz istediğimizde onu çağırır. Methodlar aslında makine kodlarından oluşan ardışıl bir kod grubudur. Bir method başlangıç adresi yoluyla tutulup çağırılabilir. Yani delegenin bir methodu tutması, onun yalnızca başlangıç adresini tutması anlamına gelir.

Delege bildiriminin genel biçimi şöyledir;

delegate ([parametre bildirimi]);
Continue Reading



Foreach Döngüsü

Foreach döngüsü C#’ da IEnumerable ara yüzünü destekleyen sınıflarla yada yapılarla kullanılabilir. Yani foreach döngüsü yalnızca dizilerle değil, genel olarak dizilimlerle kullanılablilir.

Anahtar Notlar: Burada dizilim terimi genel olarak IEnumarable arayüzünü destekleyen her şey için kullanılmaktadır.

Foreach döngüsünün genel biçimi şöyledir;
Continue Reading


Kutulama Dönüştürmesi (Boxing Conversion)

Anımsanacağı gibi tüm yapılar System.ValueType türünden türetilmiş durumdadır. System.ValueType sınıfında System.Object türünden türetilmiştir. O halde, biz herhangi bir yapı değişkenini System.ValueType yada System.Object referanslarına atayabilir miyiz? İşte bir yapının System.ValueType yada System.Object referanslarına atanmasına, kutulama dönüştürmesi ( Boxing Conversion ) denir.

Referanslar stackdeki nesnenin adresini tutamazlar. Halbuki yapı değişkenleri stackdedir. İşte ne zaman bir yapı değişkeni System.ValueType yada System.Object türlerine atanacak olsa, o yapı değişkeninin heapde bir kopyası çıkartılır ve atanan referans heapdeki bu kopyayı gösteriyor duruma gelir. Continue Reading


Aşağıya doğru dönüştürme (Down Casting)

Türemiş sınıftan taban sınıfa dönüştürme yapıldıktan sonra programcı, bu taban sınıf referansını yeniden türemiş sınıf türüne dönüştürmek isteyebilir. Bu tür dönüştürmelere aşağıya doğru yapılan dönüştürmeler denir. İşte taban sınıftan türemiş sınıfa doğrudan (implicit) dönüştürme yoktur. Tür dönüştürme operatörüyle (Explicit) dönüştürme vardır.

    
                        A x;
			B y = new B();
			x = y;
			//...
			B z;
			z = x; // Error!
			z = (B)x; // Geçerli!

Continue Reading


Türemiş Sınıf Referansının Taban Sınıf Referansına Atanmasının Anlamı

Türemiş sınıf referansının taban sınıf referansına atanabilmesi, geneller üzerinde işlem yapabilen methodların yazılabilmesine olanak sağlamaktadır. Örneğin aşağıdaki gibi bir türetme şemasında FindPerson isimli method tüm çalışanların temel bilgilerini kullanarak arama işlemi yapıyor olabilir.


Continue Reading


Pages:12345678