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.


Yukarıdan aşağıya doğru dönüştürmeler herzaman derleme aşamasında kabul edilir. Fakat programın çalışma aşamasında akış dönüştürme noktasına geldiğinde ayrıca bir haklılık kontrolü CLR tarafından yapılmaktadır.

Aşağıya doğru dönüştürme uygulanırken programın çalışma zamanı sırasında ayrıca dönüştürülmek istenen referansın gösterdiği yerdeki nesnenin dönüştürülmek istenen türün elemanlarını içerip içermediğine bakılır. Yani dönüştürülmek istenen referansın dinamik türü dönüştürülmek istenen türü kapsıyorsa dönüştürme haklıdır. Kapsamıyorsa dönüştürme haksızdır exception oluşur.

Burada dönüştürülmek istenen referans a’ dır. Dönüştürülmek istenen tür B’ dir. a’ nın dinamik türü A’ dır. B’ yi kapsamamaktadır.
Fakat örneğin;

Aralarında türetme ilişkisi olmayan iki sınıf arasında, tür dönüştürme operatörüyle bile dönüştürme yapılsa derleme aşamasında error oluşur. Çünkü böyle bir dönüştürmenin haklı olabilme olasılığı yoktur. Yani kontrolün çalışma zamanına bırakılmasına gerekte yoktur. Örneğin Sample ve Test herhangi iki sınıf olsun;

Kaynak:Kaan Aslan Hocanın Dersinde Tuttuğum Ders Notlarıdır.

Leave a Reply

Site Footer